【问题标题】:iOS Detect URLs in PDF displayed in UIWebViewiOS 检测 UIWebView 中显示的 PDF 中的 URL
【发布时间】:2016-01-20 12:01:40
【问题描述】:

我目前正在 UIWebView 中显示一个 pdf 文档。

[...]
[viewerWebView setDataDetectorTypes: UIDataDetectorTypeLink];
[viewerWebView performSelectorInBackground:@selector(loadRequest:) withObject:requestObj];
[viewerWebView setScalesPageToFit:YES];
[...]
(The code is shortened and is only here to show the main part of how I display the pdf in an UIWebView)

我正在拼命寻找一种解决方案,在这个 pdf 中创建一个“可点击”的 url(它是一个网站的超链接)。我知道有类似“CGPDF”的东西,但我不太确定如何实现它以与 UIWebView 一起使用。我很高兴能够进一步使用该 WebView 而不是另一种显示 pdf 的方式。如果有人以前一直在努力解决这个问题并且知道解决方案或知道一个很好的在线教程,我将非常感谢您的回答。

提前致谢, 帕特里克。

【问题讨论】:

  • 我完全知道这不是用 Swift 编写的。我将很快重写我的应用程序;-) 如果您在 Swift 中找到了解决方案 - 没问题!

标签: ios objective-c pdf uiwebview


【解决方案1】:

使用UIWebView,您的选择将仅限于任一

1) 实现从 PDF 中提取文本、扫描链接、处理链接然后使用UIGraphicsSetPDFContextDestinationForRect 将链接添加到文件的代码。您必须重新渲染内容,这是一个缓慢且有损的过程,但对于简单的 PDF 文档,这可能会很慢,但效果很好。

2) 重新实现一切,从CGContextDrawPDFPage 开始你仍然需要特殊的代码来提取文本(非常重要,准备好深入研究 CMap 是什么以及如何转换文本以获得 unicode)

我们在目前适用于 iOS 和 Android 的商业可用 PSPDFKit SDK 中做了 (2)。在 iOS 上,您可以将 autodetectLinkTypes 设置为 PSPDFTextCheckingTypeAll 以启用此类检测。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-09
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多