繁体   English   中英

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

[英]Is there any PDF parser written in objective-c or c?

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

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

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

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

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

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

我已经尝试过自己编码,但是PDF中的编码确实很复杂。

例如,当我想用​​以下字体解码文本时,我不知道要指的是什么:

8 0 obj
<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /RNXJTV+PMingLiU
/DescendantFonts [ 157 0 R ] >>
endobj

157 0 obj
<< /Type /Font /Subtype /CIDFontType2 /BaseFont /RNXJTV+PMingLiU /CIDSystemInfo
<< /Registry (Adobe) /Ordering (CNS1) /Supplement 0 >> /FontDescriptor 158 0 R
/W 161 0 R /DW 1000 /CIDToGIDMap 162 0 R >>
endobj

158 0 obj
<< /Type /FontDescriptor /Ascent 801 /CapHeight 711 /Descent -199 /Flags 32
/FontBBox [0 -199 999 801] /FontName /RNXJTV+PMingLiU /ItalicAngle 0 /StemV
0 /Leading 199 /MaxWidth 1000 /XHeight 533 /FontFile2 159 0 R >>
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类型等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM