
现在我想对另一个常见问题做同样的事情:用Quartz搜索pdf文档。同样的情况,这个问题已经被问了很多次,几乎没有实际的答案。所以我首先需要一些指针,因为我还没有自己实现。
我试过:
我尝试使用CGpdfScannerScan处理TJ和Tj运算符 – 返回一些pdf上的正确文本,而在其他文档中,它返回大多数随机字母。也许它与文本编码有关?
应该处理某人pointed out的文字(由BT / ET *** 作符标记),但我仍然没有设法这样做。任何人设法从任何pdf提取文本?
之后,通过将所有文本存储在NSMutableString中并使用rangeOfString(如果有更好的方式请让我知道),搜索应该很容易。
但那么如何突出显示结果?我知道有几个 *** 作符可以找到字形大小,所以我可以根据这些值计算得到的rect,但是我已经读了几个小时的规格了,这是一个blo肿的混乱,我会疯了。任何人有实际的解释?
更新
用户Naveen Thunga发现PDFKitten是“从iOS中的pdf提取数据的框架”。我只是试用了这个演示,似乎像广告一样工作。我会用更多的pdf进行测试,并会尽快发布结果。作为一个附注,代码对我来说似乎很好 – 如果你对这个东西如何工作感兴趣,这是非常棒的。
解决方法 这不是一个简单的问题来实现,但它是直截了当的。对于任何给定的页面,您需要使用CGpdf扫描器API扫描页面。您需要注册影响页面中文本的pdf *** 作符的回调 – 不仅仅是TJ / Tj,还要设置字体,影响文本绘图矩阵等的回调。您需要构建一个状态机,以便每个遇到的标签参数更新。您需要检查当前字体编码的文本计费。当您找到要突出显示的文本时,您需要检查您正在更新的当前文本图形矩阵以确定绘图坐标。阅读pdf规范(1.7版可从Adobe下载),以了解您需要注意的 *** 作符。
字体编码可能是最困难的部分,因为有几种方式可以指定编码,其中一些是字体专有的。大多数情况下,您可以欺骗并回退ANSI编码的一个子集 – 但是这个WILL会在具有奇怪字体的某些pdf上打破。
基本上你正在处理页面,就像你要渲染一样。
总结以上是内存溢出为你收集整理的iPhone上的PDF搜索全部内容,希望文章能够帮你解决iPhone上的PDF搜索所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)