Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当尝试获取字数时,此PDF有什么问题_Python_Python 3.x_Pdf_Pypdf2_Pymupdf - Fatal编程技术网

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

Python 当尝试获取字数时,此PDF有什么问题,python,python-3.x,pdf,pypdf2,pymupdf,Python,Python 3.x,Pdf,Pypdf2,Pymupdf,我正在尝试编写一个python应用程序,以便为PDF计算字数 不过,我在这个PDF中遇到了一些奇怪的事情 当我从PDF中提取文本时,它显示为某种二进制/符号垃圾 我尝试了PyPDF2和PyMuPDFlibs,得到了相同的结果 我怎样才能得到像这样的PDF的字数 这是文件。 PDF缺少文本提取所需的信息。因此,试图从中提取文本通常会产生垃圾。 详细地 该PDF中的文本使用的字体既不显示ToUnicode地图,也不显示标准化名称的编码。它也不使用ActualText属性标记内容。此外,字符代码到例如

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

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

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

我尝试了
PyPDF2
PyMuPDF
libs,得到了相同的结果

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

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

详细地 该PDF中的文本使用的字体既不显示ToUnicode地图,也不显示标准化名称的编码。它也不使用ActualText属性标记内容。此外,字符代码到例如拉丁语-1的简单身份映射也不会产生任何可理解的结果

因此,根据PDF规范ISO 32000(第1部分和第2部分)中提出的算法对每个字符进行文本提取将导致该阶段

如果这些方法无法生成Unicode值,则无法确定字符代码所代表的内容,在这种情况下,一致性读取器可以选择自己选择的字符代码

(ISO 32000-1第9.10.2节将字符代码映射到Unicode值)

通过应用“复制粘贴”,您可以看到Adobe Acrobat也不喜欢这样

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

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

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

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

字符编码似乎有问题。我从未使用过这些库,但检查一下它是否与字符编码不匹配,我认为编码在Python2中已经消失了。在Python3中不是只有
str
byte