当尝试获取字数时,此PDF有什么问题

2024-04-19 09:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个python应用程序,以便为PDF计算字数

不过,我在这个PDF中遇到了一些奇怪的事情

当我从PDF中提取文本时,它显示为某种二进制/符号垃圾

我尝试了PyPDF2PyMuPDFlibs,得到了相同的结果

我怎样才能得到像这样的PDF的字数

这是文件。 https://www.dropbox.com/s/hdgqd70l0kcayvo/mhr.pdf?dl=0


Tags: 文件https文本com应用程序pdfwww二进制
1条回答
网友
1楼 · 发布于 2024-04-19 09:35:12

该PDF缺少文本提取所需的信息。因此,试图从中提取文本通常会产生垃圾。

详细信息

该PDF中的文本使用的字体既不显示ToUnicode地图,也不显示标准化名称的编码。它也不使用ActualText属性标记内容。此外,字符代码到例如拉丁语-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值)

您可以通过应用copy&;看到Adobe Acrobat也不喜欢这样;粘贴

不过,在某些情况下,深入研究嵌入式字体会找到到Unicode的替代映射,一些文本提取器确实使用它们

尽管如此,这种方法在这里也无济于事,字体是一种类型3字体,即不基于某些正常的字体格式(例如TrueType),而是完全使用PDF矢量图形序列定义,无需进一步映射到Unicode

因此,如果没有某种程度的OCR(人工或自动化),就无法从该PDF中提取文本

作为旁白

如果本文件确实是由美国某些部门以当前形式发布的(而不是应用于其原始文件的某些转换工具的输出),您可能希望与该部门联系,并讨论可访问性和第508节等主题

相关问题 更多 >