如何解析带有 Adobe CID 字符的 PDF
How to parse PDF with Adobe CID characters
社区。
我一直在尝试使用多种工具来解析 PDF 文档。
比如pdfminer for Python,pdf-parse for Node.js,但是其中none可以解析一个空格的Adobe CID字符,我得到如下序列。
(cid:411)(cid:579)(cid:556)(cid:851)(cid:411)(cid:579)
是否有可以解析这些字符的工具?
您在评论中提供了示例:
I attach the pdf file. For example, the line POLLEN ALLERGY is not being parsed correctly.
在您的 PDF 文件中,标题“11. POLLEN ALLERGY”是使用以下命令绘制的:
<003900390048000300130012000f000f0008001100030004000f000f00080015000a001c> Tj
绘制时的活动字体是具有Identity-H编码的复合字体,没有映射的ToUnicode映射,和一个 Adobe-Identity-0 ROS。所以基本上所有人都知道它是水平绘制的并且 double-byte。 (因此,在上面的说明中,您可以将十六进制字符串拆分为每个 4 个十六进制数字的子序列,以获得所有字形的字符代码。)
根据 PDF 规范 ISO 32000-1 的第 9.10.2 节 - 将字符代码映射到 Unicode 值 - 进行文本提取,因此,每个字形都指向最终的
If these methods fail to produce a Unicode value, there is no way to determine what the character code represents in which case a conforming reader may choose a character code of their choosing.
因此,行 POLLEN ALLERGY 未被正确解析的原因, 只是因为 PDF 不包含 文本提取所需的信息 仅基于 PDF 信息。
这也显示在 Adobe Acrobat Reader 中,该行的复制和粘贴也 returns 没有任何可理解的内容。
不过,有一个选项可以正确地提取文本:您需要一个文本提取器,它可以查看 PDF 语法中的信息,并进入嵌入式字体程序以进行文本提取。这里确实有从字形到 Unicode 代码点的正确映射。
不过,我不知道哪个 - 如果有的话 - python 文本提取器确实使用了这些额外信息。
社区。
我一直在尝试使用多种工具来解析 PDF 文档。 比如pdfminer for Python,pdf-parse for Node.js,但是其中none可以解析一个空格的Adobe CID字符,我得到如下序列。
(cid:411)(cid:579)(cid:556)(cid:851)(cid:411)(cid:579)
是否有可以解析这些字符的工具?
您在评论中提供了示例:
I attach the pdf file. For example, the line POLLEN ALLERGY is not being parsed correctly.
在您的 PDF 文件中,标题“11. POLLEN ALLERGY”是使用以下命令绘制的:
<003900390048000300130012000f000f0008001100030004000f000f00080015000a001c> Tj
绘制时的活动字体是具有Identity-H编码的复合字体,没有映射的ToUnicode映射,和一个 Adobe-Identity-0 ROS。所以基本上所有人都知道它是水平绘制的并且 double-byte。 (因此,在上面的说明中,您可以将十六进制字符串拆分为每个 4 个十六进制数字的子序列,以获得所有字形的字符代码。)
根据 PDF 规范 ISO 32000-1 的第 9.10.2 节 - 将字符代码映射到 Unicode 值 - 进行文本提取,因此,每个字形都指向最终的
If these methods fail to produce a Unicode value, there is no way to determine what the character code represents in which case a conforming reader may choose a character code of their choosing.
因此,行 POLLEN ALLERGY 未被正确解析的原因, 只是因为 PDF 不包含 文本提取所需的信息 仅基于 PDF 信息。
这也显示在 Adobe Acrobat Reader 中,该行的复制和粘贴也 returns 没有任何可理解的内容。
不过,有一个选项可以正确地提取文本:您需要一个文本提取器,它可以查看 PDF 语法中的信息,并进入嵌入式字体程序以进行文本提取。这里确实有从字形到 Unicode 代码点的正确映射。
不过,我不知道哪个 - 如果有的话 - python 文本提取器确实使用了这些额外信息。