iOS PDF 原生搜索

标签 ios objective-c ipad swift pdf

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

我一直在查看 QLPreviewController、UIDocumentInteractionController 并在 UIWebView 中呈现 pdf。所有这些替代方案都可以很好地呈现 pdf,但我找不到任何内置搜索。我想要像 iBooks 应用程序这样的功能。

感谢任何建议!

最佳答案

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

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

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

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

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

关于iOS PDF 原生搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28546031/

相关文章:

ios - UISearchDisplayController 表格 View 有两个搜索栏,表格 View 无法正确滚动

iphone - UILabel lineBreakMode剪辑不剪辑文本

ios - 通过导航 Controller 时丢失指向委托(delegate)的指针

ios - 在 iOS 中创建 JSON 字符串

iOS执行循环直到满足指定时间的特定条件?

javascript - 在 iPhone 中加载 HTML 资源

javascript - 如何打开可编辑的对话框来发布推文

ios - 更改 UISplitViewController iOS 8 中的详细导航项

Xcode 未检测到我的设备

iphone - 当选择器 View 停止滚动时如何获取事件