0
我想提取文本页面从PDF和存储文本每页清单明智列表中的像蟒蛇 - 从PDF页面明智提取文本列出
[['This', 'is', 'one', 'page'] , ['I', 'am', 'page', 'TWO'] , ['Three', 'that\'s', 'me'] , ['and', 'so', 'on'] , ['...']]
我用extractText()
从PyPDF2 package方法:
#!/usr/bin/python
from PyPDF2 import PdfFileReader
# open PDF
myPDFpath = 'test.pdf'
myPDF = PdfFileReader(open(myPDFpath, "rb"))
# initialize page list
pagelist = []
# grab all text from PDF per page and put into page list
for page in range(0, myPDF.getNumPages()):
currentPage = myPDF.getPage(page)
myText = currentPage.extractText()
thispage = myText.split()
pagelist.append(thispage)
上面的代码在技术上有效,但该方法是不可靠的(按照自己doc),抛出输出像:
[u'!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"',
所以我想知道是否有其他可靠的方法来解析Python中的PDF文件中的文本?
你的意思是那句“这非常适用于某些PDF文件,但对其他人不好,这取决于使用的发电机。”?这是真的。不是*全部*全部*全部*文本可以*总是*被提取。发布一个链接到您有问题的PDF,我们可以判断这是否是这样的。 – usr2564301
我使用的文件位于:http://a.uguu.se/yefsbf_testdocx-pdf.pdf它是使用MSx中的Print/Pdf ...函数从docx文档生成的。如果有一种方法可以从docx生成一个不会引发这些问题(但保持页面完好)的pdf的方法,那将会很棒 – birgit
非常令人惊讶:我自己的工具比PyPDF2更好,但是在解码字体时出错: '% - 纯文本转储---------------- 我“是”页面“1”。“我”是“页面”1。“”我“是”页面“ 1。“”(等),空格字符被翻译成'''!尽管如此,使用Adobe Acrobat复制文本时也会出现同样的情况,这就是能够复制文本的试金石。检查PDF显示我们都是正确的,根据嵌入的'/ ToUnicode','空间'确实转化为双引号。 – usr2564301