WPF流文档超链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF流文档超链接相关的知识,希望对你有一定的参考价值。

用FlowDocumentReader读取文件,文件中有超链接,点击超链接,程序会出现崩溃或打开浏览器之类的。有什么办法去掉超链接?

参考技术A 解决办法:加遮罩层,做一个透明的遮罩,挡在FlowDocumentReader前面,这样就点不到超链接了。。

参考资料: http://www.wpf100.com/html/5/2012-08/article-271.html

如何访问 PDF 文档 (iPhone) 中的超链接?

【中文标题】如何访问 PDF 文档 (iPhone) 中的超链接?【英文标题】:How to access hyperlinks in PDF documents (iPhone)? 【发布时间】:2010-11-17 21:09:07 【问题描述】:

是否可以使用CGPDFDocument 或其他方式访问 PDF 文档中的“内部”链接?我正在构建一个简单的阅读器应用程序,并希望以 PDF 形式提供我的内容,但如果我不支持文档中页面之间的链接,这可能无法正常工作。

This question类似,但没有解决如何支持超链接的问题。

【问题讨论】:

页面之间的链接到底是什么意思?您是在谈论第 1 页上的链接,该链接转到第 4 页,还是您在谈论阅读器中的第 1 页紧随其后的第 2 页?顺便说一句,如果您谈论的是页面之间的可点击链接,请记住,PDF 文档中的超链接只是页面上可点击的热点矩形,与它们显示为超链接的文本没有直接关系。从这个意义上说,PDF 文档与 HTML 文档不同。 我的意思是支持从一个页面到文档中其他任意页面的链接。我会将它用于目录,以及在随机位置引用其他页面。所以是的,我真正在寻找的是一种类似 HTML 的方式来导航 PDF 文档。没有这个我可以处理“下一个/上一个/主页”导航的简单情况,但理想情况下我也想支持任意导航。谢谢。 这是一些示例代码,来自我自己的问题:***.com/questions/4080373/… 【参考方案1】:

查看我的回答here。基本上,您需要熟悉 PDF 链接注释。

【讨论】:

【参考方案2】:

查看此示例代码...pdf 超链接适用于此

https://github.com/vfr/Reader

【讨论】:

【参考方案3】:

如果您使用的是Quartz to open and view a PDF,那么是的,您似乎可以访问内部链接。 Quartz 还可以让您add new links 转为 PDF。我没有任何 iPhone/Mac 开发的第一手经验,但是他们让你添加超链接却不使用它们会很奇怪。

【讨论】:

这些链接都指向 Mac OS X 参考库,而不是 iPhone OS。手机上不存在 PDFKit。 是的,以上两个链接都只是打开 osx 参考库列表。它没有提供任何适当的信息。它是如何被接受的? -1 对不起伙计们,我不再做 iPhone 开发了,所以这实际上是一个被放弃的问题。我无法验证这是否是一个可接受的答案,所以我只是“不接受”它。【参考方案4】:

您需要分两步进行。

首先:解析您的 pdf 以找到标记的内容运算符

这是一个解析代码的例子:

-(void)parseContent() 
    CGPDFOperatorTableRef myTable;
    myTable = CGPDFOperatorTableCreate();
    CGPDFOperatorTableSetCallback(myTable, "BMC", &myOperator_BMC);
    CGPDFContentStreamRef myContentStream = CGPDFContentStreamCreateWithPage(page);
    CGPDFScannerRef myScanner = CGPDFScannerCreate(myContentStream, myTable, autoZoomAreas);
    CGPDFScannerScan(myScanner);
    CGPDFScannerRelease(myScanner);
    CGPDFContentStreamRelease(myContentStream); 


void myOperator_BMC(CGPDFScannerRef s, void *info)

    const char *name;
    CGPDFScannerPopName(s, &name);

(您需要完成并调整此代码以符合您的要求)

第二:响应 toucheEnded 消息以处理对这些区域的点击并使 UI 做出相应响应。

【讨论】:

以上是关于WPF流文档超链接的主要内容,如果未能解决你的问题,请参考以下文章

WPF - 使超链接可点击

如何通过数据绑定设置 WPF 超链接的文本?

WPF:标签导航被折叠的超链接破坏

xml WPF超链接

Wpf Hyperlink超链接控件使用

我的word打开的时候总是提示超链接不可用,怎么回事???