我正在尝试从PyPDF下载的PDF文件中获取文本。 这是我的代码:
if not PyPDF2.PdfFileReader('download.pdf').isEncrypted:
PyPDF2.PdfFileReader('download.pdf').getPage(0).extractText()
这是输出:
'\n\n˘ˇ˘ˆ˙\n˝˛˚˜!\n\n\n\n#\nˇ˘ˆ˙ˆ˝˛˝\n˙˙˘ ˘ˆ"˝\n$!%˙(˝)˙*˜+,˝-.#/.(#0)0)/.1.+02345.\n˛˛ˇ/#.$/0/70/#.+322.32˙˘˛˘˘\n˛˘ 8˙˘9:˘ˆ;\n˛˘\n\n˝=\n˙˘˛\n.ˇ<9:˘ˇˇ%˘˛ˇ ˘˘<˘\n˝>"?˝˘$@<˘*ˆˆ˘˙˘A˘B˘˙˘˛ˇ!˛˘˙˘˛ˇ˘\n1C˙ˆ˘06˛˘8+˛9:˘D10+E˝ˆ˘8\n$˘˘9:˘˘1C˙ˆ˘+˘F˛˘D$1+FE˝˘˛˘˘<˘?˝\n////)*˘1˘˛ ?GG˜*HI\nD˘˙A˘E\nJ$\n˛\nDLE///M˛˝˛˙˘˛˘˛\n˛˘˛>"?\n˙˘˛\n˛\n/)M6;˝˛˙˘˛˘\n˛\n///˛\n\n'
当我打开文件时,它的内容很好。另外,当我使用另一个程序将pdf转换为txt时,它也可以正常工作。它是网页上用javascript呈现的pdf文件,不知道是否有任何区别。
答案 0 :(得分:0)
以下内容摘自文档(https://pythonhosted.org/PyPDF2/PageObject.html)
extractText()找到所有文本绘制命令,顺序为它们 在内容流中提供,并提取文本。这很好 对于某些PDF文件,但对于其他PDF文件则效果不佳,具体取决于生成器 用过的。将来会对此进行完善。不要依赖顺序 此功能产生的文字,如果此功能会更改 变得更加复杂。返回:一个Unicode字符串对象。
因此,该功能的性能似乎取决于pdf本身。
答案 1 :(得分:0)
在Win 7,Python 3.6下,我遇到了PyPDF2无法正确编码某些PDF文件的问题。我的解决方案是使用pdfminer.six。
pip install pdfminer.six
要从PDF中提取文本,您可以使用以下功能:https://stackoverflow.com/a/42154976/9524424
对我来说做得很好...