objective-c - 如何在 iPhone 的 pdf 页面中使用 CGPDFScanner 查找字坐标?

标签 objective-c ios pdf

我正在使用 CGPDFScanner 解析 pdf 页面。 但我无法找到搜索结果的坐标。

在 void Tm1(CGPDFScannerRef Scanner, void *info) 中,我只获取某些单词的坐标,而不是 pdf 中的每个单词的坐标。

如何找到 pdf 页面每个单词的坐标,例如(x,y)?

最佳答案

您大大低估了将 PDF 转换为文本的复杂性。我也犯了这个错误,花了几个月的时间编写一个适用于大多数 PDF 的文本提取引擎。我的代码是商业代码,但只是为了给您一个想法:

Td、TD、Tm、T*、d0、d1 都可以包含文本。 (d0、d1 用于 Type3 字体,不太常见,但 Microsoft Word 非常喜欢它们)因此可以执行 XObjects 中的任何对象(也是递归的)。但您还需要解析字体,因为许多 PDF 都将 CMap 附加到将“随机数字”转换为字符(或字符 - PDF 也可以具有连字)的字体。请注意,XObject 也可能包含字体,并且以正确的顺序解析它们至关重要,因为字体可以具有父字体。

Adobe's ToUnicode PDF给你一些如何开始的想法,但只是一个警告,规范非常不完整。官方 PDF 引用中还有更多内容,但您仍然会发现不应工作(查看规范时)但仍然有效(当您在 Adob​​e Acrobat 中尝试时)的文档。

关于objective-c - 如何在 iPhone 的 pdf 页面中使用 CGPDFScanner 查找字坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9325675/

相关文章:

objective-c - Objective - C,使用 NSDecimalNumberHandler 和 NSDecimalNumberBehaviors 协议(protocol)

ios - CollectionView Segue 在接收 ViewController 时发现 nil

ios - 具有大量 View Controller 的 Storyboard或 xib

pdf - 使用 ghostscript 检查 PDF 是否有透明对象

objective-c - Mac 应用程序中的数据库选项

iphone - 检测 iOS 中 UITextField 中的回车符

ios - 同时使用 Firebase 和 HockeyApp 时没有 HockeyApp 崩溃报告

php - 找不到类 'Mpdf\Mpdf'

python - RuntimeError:未指定表列/单元格宽度,无法继续

objective-c - 从 Cocoa 应用程序创建 ZIP 存档