是否有任何用objective-c或c编写的PDF解析器?

我正在写一个pdf阅读器iPhone应用程序。

我知道如何在iOS中使用CGPDF **类在视图中显示pdf文件。

我现在要做的是搜索pdf文件中的文本,并突出显示搜索到的文本。 所以,我需要一个可以检测文本处于什么位置的库。 此外,我希望图书馆能够处理unicode和汉字。

我搜索了几天但仍然找不到合适的东西。

我试过xpdf,但它是用c ++编写的。 我不知道如何在iPhone应用程序中使用c ++代码。

我也试过http://www.codeproject.com/KB/cpp/ExtractPDFText.aspx,但它不处理中文字符。

我试图自己编写代码,但PDF中的编码非常复杂。

例如,当我想通过以下字体解码文本时,我不知道该引用什么:

8 0 obj <> endobj 157 0 obj << /Type /Font /Subtype /CIDFontType2 /BaseFont /RNXJTV+PMingLiU /CIDSystemInfo <> /FontDescriptor 158 0 R /W 161 0 R /DW 1000 /CIDToGIDMap 162 0 R >> endobj 158 0 obj <> endobj 

看一下CGPDFScanner类型; 它可用于解析字符串和特定PDF运算符的PDF文档。

此代码有一些可以轻松修复的错误。 很好地呈现了Objective C代码。

https://github.com/KurtCode/PDFKitten

CGPDFScanner只能扫描pdf内容,但您无法在pdf中找到该单词的位置。 因此使用cgpdf函数无法突出显示。 扫描仪输出也是flateDecoded和其他类型pdf的编码文本。 它只能扫描简单的pdf,即线性pdf。 (打开pdf作为文本文件,在顶部你会找到单词Linearized pdf。)如果你得到一个,可能的解决方案是使用ac或c +解析库。 此外,代码项目中的cpp项目只会解析内容,但不会提供任何位置信息。 自己编写pdf解析器很复杂,因为pdf格式很复杂而且没有修复。 Pdf内容可以用不同的方式编码,如FlateDecode类型等。