尝试获取字数时此 PDF 有什么问题
What is wrong with this PDF when trying to get a word count
我正在尝试编写一个 python 应用程序来统计 PDF 的字数。
虽然我 运行 对这个 PDF 感到奇怪。
当我从 PDF 中提取文本时,它显示为某种 binary/symbol 垃圾。
我尝试了 PyPDF2
和 PyMuPDF
库,结果相同。
如何计算此类 PDF 的字数?
这是文件。
https://www.dropbox.com/s/hdgqd70l0kcayvo/mhr.pdf?dl=0
该 PDF 缺少文本提取所需的信息。因此,尝试从中提取文本通常会输出垃圾。
详细
该 PDF 中的文本是使用既不公开 ToUnicode 映射也不公开具有标准化名称的编码的字体绘制的。它也不用 ActualText 属性标记内容。此外,字符代码的天真身份映射到例如Latin-1 也不会产生任何可理解的结果。
因此,根据 PDF 规范 ISO 32000(第 1 部分和第 2 部分)中提出的算法进行文本提取将针对每个字符通向
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.
(ISO 32000-1,第 9.10.2 节将字符代码映射到 Unicode 值)
你可以看到,Adobe Acrobat 也不喜欢这样,应用复制和粘贴。
不过,在某些此类情况下,深入研究嵌入式字体会发现到 Unicode 的替代映射,一些文本提取器确实会使用它们。
尽管如此,这种方法在这里也无济于事,字体是 3 类字体,即不基于某些普通字体格式(例如 TrueType),而是完全使用 PDF 矢量图形序列定义,而无需进一步映射到Unicode.
因此,如果没有某种程度的 OCR(人工或自动化),就无法从此 PDF 中提取文本。
旁白
如果此文档确实是由某些 U.S 以当前形式发布的。部门(而不是应用于其原始文档的某些转换工具的输出),您可能想联系该部门并讨论可访问性和第 508 节等主题...
我正在尝试编写一个 python 应用程序来统计 PDF 的字数。
虽然我 运行 对这个 PDF 感到奇怪。
当我从 PDF 中提取文本时,它显示为某种 binary/symbol 垃圾。
我尝试了 PyPDF2
和 PyMuPDF
库,结果相同。
如何计算此类 PDF 的字数?
这是文件。 https://www.dropbox.com/s/hdgqd70l0kcayvo/mhr.pdf?dl=0
该 PDF 缺少文本提取所需的信息。因此,尝试从中提取文本通常会输出垃圾。
详细
该 PDF 中的文本是使用既不公开 ToUnicode 映射也不公开具有标准化名称的编码的字体绘制的。它也不用 ActualText 属性标记内容。此外,字符代码的天真身份映射到例如Latin-1 也不会产生任何可理解的结果。
因此,根据 PDF 规范 ISO 32000(第 1 部分和第 2 部分)中提出的算法进行文本提取将针对每个字符通向
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.
(ISO 32000-1,第 9.10.2 节将字符代码映射到 Unicode 值)
你可以看到,Adobe Acrobat 也不喜欢这样,应用复制和粘贴。
不过,在某些此类情况下,深入研究嵌入式字体会发现到 Unicode 的替代映射,一些文本提取器确实会使用它们。
尽管如此,这种方法在这里也无济于事,字体是 3 类字体,即不基于某些普通字体格式(例如 TrueType),而是完全使用 PDF 矢量图形序列定义,而无需进一步映射到Unicode.
因此,如果没有某种程度的 OCR(人工或自动化),就无法从此 PDF 中提取文本。
旁白
如果此文档确实是由某些 U.S 以当前形式发布的。部门(而不是应用于其原始文档的某些转换工具的输出),您可能想联系该部门并讨论可访问性和第 508 节等主题...