CGPDFScanner、Identity-H 和解压缩
我的 CGPDFScanner 实例正在扫描测试 pdf 文件。
在给定时间,当前字体字典具有 Encoding
值 Identity-H
和带有键 FontFile2
的 FontDescriptor
字典。这个键恰好是一个流值,它的字典有键Filter
。该键的值为 FlateDecode
。
我不确定如何解释和使用它(例如,将下一个 Tj
块中的文本提取为 Unicode)。例如,我是否只对下一个 Tj
块中的字节进行 zlib 解压缩? (这里没有 ToUnicode
键。)
我以为所有解压都是由 CGPDFScanner
实例执行的。
My instance of CGPDFScanner
is scanning a test pdf file.
At a given time, the current font dictionary has Encoding
value Identity-H
and a FontDescriptor
dictionary with key FontFile2
. This key happens to be for a stream value, whose dictionary has the key Filter
. The value for this key is FlateDecode
.
I'm unsure of how to interpret and use this (to, say, extract the text in the next Tj
block to Unicode). For example, do I just zlib-decompress the bytes in the next Tj
block? (There is no ToUnicode
key here.)
I'd thought all the decompression was carried out by the instance of CGPDFScanner
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果字体使用 Identity-H 编码并且没有 ToUnicode 条目,则无法提取文本。 Tj 运算符的参数是字形索引序列,如果没有 ToUnicode 条目,则该序列无法转换为文本。
FontFile2 条目存储实际的字体文件,在从 PDF 文件中提取文本时它没有任何作用。
If the font uses Identity-H encoding and it does not have a ToUnicode entry, the text cannot be extracted. The parameter of Tj operator is a sequence of glyph indexes and this sequence cannot be converted to text in the absence of the ToUnicode entry.
The FontFile2 entry stores the actual font file, it has no role when extracting text from the PDF file.