【问题标题】:iOS PDF native searchiOS PDF 原生搜索
【发布时间】:2015-02-16 16:31:23
【问题描述】:

我需要在我的应用中展示和打开 pdf 文档。由于更新原因,我想避免使用第三方库(而且我找不到任何用 swift 创建的人)。

我一直在查看 QLPreviewController、UIDocumentInteractionController 并在 UIWebView 中呈现 pdf。所有这些替代方案都适用于仅呈现 pdf,但我找不到任何内置搜索。我想要 iBooks 应用程序之类的功能。

感谢任何建议!

【问题讨论】:

  • 等一下,您想阅读 PDF 吗?您肯定需要使用 3rd 方库,因为该任务需要某种 Cocoa 框架中不具备的光学字符识别功能。
  • 为什么需要 OCR?如果 PDF 文档包含实时文本,您肯定不需要 OCR。
  • 我不了解 OCR,但我发现例如 UIDocumentInteractionController 不包含搜索功能非常令人沮丧。我可以在 iBooks 中打开 pdf:s,但之后我会松开后退导航。

标签: ios objective-c ipad swift pdf


【解决方案1】:

你可能还找不到任何用 Swift 编写的 3rd-party 框架,因为从 Swift 2.2 开始,它还不是二进制兼容的,而且任何用 Swift 编写的二进制框架都非常脆弱,即使是对Xcode(也就是编译器的更新)。

我正在开发适用于 iOS 和 Android 的商业广告 PSPDFKit SDK。实际上,我们在内部使用了很多 C++,因为原始性能非常重要,而 Objective-C(在很多方面,还有 Swift)对于某些任务来说还不够快。

我们确实投入了大量时间来采用最新的 Objective-C 功能,例如 nullabilitygenerics 旁边的声明,例如基于块的 API 的 noescape,以使我们的 SDK 非常适合在 Swift 中使用.

虽然单独的 Swift 包装器可以提供额外的便利,但您会发现它非常易于使用,而且我们一直在努力采用更多功能来改进桥接,因为它们可用 - 有一些有趣的东西在Swift 3 提案。

如果您不想走框架路线,可以使用CGPDFScanner 来构建自定义文本提取引擎。您将需要阅读Character Map Parsing - 第 446ff 页和许多其他部分 - 从 PDF 文档中提取文本非常困难,经过大量工作后,您将留下单独的字形位置,并且需要估计单词的位置以及是否该文档使用空格,或者如果您需要合成自己的空格以正确提取文本。这需要大量的实验和近似才能得到正确的结果。

【讨论】:

    猜你喜欢
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 2018-05-26
    相关资源
    最近更新 更多