为什么 PyPDF2 在打印 extractText 时会显示此输出?

问题描述

我正在尝试使用 PyPDF2 从 pdf 中提取数据,但不是显示实际文本,而是在输出显示其他内容,这背后的原因是什么?

这是我的代码

xfile=open('filename','rb')
pdfReader = PyPDF2.PdfFileReader(xfile)
num=pdfReader.numPages
pageobj=pdfReader.getPage(0)

print(pageobj.extractText())

当我运行上面的程序时,我得到这个输出可能是什么原因?

!"#$%#&'(%!#)
(((((((((((((((((((((((((((((((((((((((((((((((((!"#$%#&'(%!#)*+,-./0!$1(230
4444444444445674+8,8,9:+*8
4&*)+!,$-.
4,*7;44444444444444444444444444
4$/012/($/3414546(78(,69:/7;7<=(>"#)?@(A2B2/231
(444<(4=&2#4$>4?&@!0$24A>/$>&&@$>/B4?CDEF4+(;8
4,*7,444*B62C;2/0(#B(%69(%9:77;@("1;23D5B
((((?C<GA47,H#B48:(,*I
4,*7*444E2F2:2B(.2G702=2(A10=2;2=2@("1;23D5B
((((?<GA47*H#B4?CDEF46(8
44%'$HH%(!.*($.,&I&%,%


解决方法

Pdf 是一种以页面布局为导向的文件格式。因此,pdf 中存在的文本可以以各种方法存储。不保证您的 pdf 以 PyPDF 可读的格式存储。

继续前进:如果您的 PyPdf 实现有问题,您可以尝试从其他 pdf 中提取数据,然后再得出结论。

您也可以尝试从 pytesseract 中提取数据,看看结果是否有所改善。

,

来自 PyPDF2s documentation

这对某些 PDF 文件效果很好,但对其他文件效果不佳,具体取决于所使用的生成器。

您的 PDF 可能属于后一类,而您是 SOL...

由于 PyPDF2 不再被积极开发(自 2016 年以来没有对 Pypi 包进行更新),也许可以尝试使用更新的包,例如 pdftotext