我正在使用 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 引用中还有更多内容,但您仍然会发现不应工作(查看规范时)但仍然有效(当您在 Adobe Acrobat 中尝试时)的文档。
关于objective-c - 如何在 iPhone 的 pdf 页面中使用 CGPDFScanner 查找字坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9325675/