问题描述
我正在尝试使用 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