Python 使用PDFMiner从PDF提取文本时丢失信息

Python 使用PDFMiner从PDF提取文本时丢失信息,python,python-3.x,pdf,poppler,pdfminer,Python,Python 3.x,Pdf,Poppler,Pdfminer,我在Windows7上使用Python3.4,希望能使用PDFMiner从PDF文件中提取文本。然而,在我测试时,丢失信息是很常见的。对于某些文件,可能只是几句话的问题。但是我遇到过这样的情况,根据文件格式,有一半的文本无法提取。以下是我的完整代码: import io from pdfminer.pdfinterp import PDFResourceManager, process_pdf from pdfminer.converter import TextConverter from p

我在Windows7上使用Python3.4,希望能使用PDFMiner从PDF文件中提取文本。然而,在我测试时,丢失信息是很常见的。对于某些文件,可能只是几句话的问题。但是我遇到过这样的情况,根据文件格式,有一半的文本无法提取。以下是我的完整代码:

import io
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams


def convert_pdf(pdfFile, retstr):
    password = ''
    pagenos = set()
    maxpages = 0
    laparams = LAParams()
    rsrcmgr = PDFResourceManager()
    device = TextConverter(rsrcmgr, retstr, laparams=laparams)
    process_pdf(rsrcmgr, device, pdfFile, pagenos, maxpages=maxpages, password=password, check_extractable=True)
    device.close()
    return retstr


def extract_pdf(file_name, language):
    pdfFile = open(file_name, 'rb')
    retstr = io.StringIO()
    retstr = convert_pdf(pdfFile, retstr)
    whole = retstr.getvalue()
    original_texts = whole.split('\n')
    pdfFile.close()
    return original_texts
我想知道是否有办法使用PDFMiner提取全文。我听说过poppler,但似乎找不到如何将其用作Python库。此外,我不想使用命令行。有人能帮忙吗


下面是一个例子:。使用上面的代码提取时,有几个段落丢失了。和第二页一样,我只能提取页面的前半部分,直到中间的“Pereira、Tishby和Lee(1993)”。然后无明显原因直接跳到下一页。

您使用python2.7尝试过pdfminer吗@出于业务原因,我不得不使用Python 3.4。上面代码中使用的pdfminer包实际上是pdfminer3k,Python3的pdfminer。但我怀疑结果是否会与Python 2.7生成的结果不同。您能否共享示例文档以使您的问题具有可复制性?在野外有许多PDF(至少部分)阻止了文本的提取,有些是偶然的,有些是故意的。@mkl这里有一个例子:。在使用上面的代码提取时,有几段文字丢失了。我将您的示例链接添加到了您的问题中。您能指出哪些段落丢失了,这样这里的人就不必搜索了吗?您是否尝试过使用python2.7的pdfminer@出于业务原因,我不得不使用Python 3.4。上面代码中使用的pdfminer包实际上是pdfminer3k,Python3的pdfminer。但我怀疑结果是否会与Python 2.7生成的结果不同。您能否共享示例文档以使您的问题具有可复制性?在野外有许多PDF(至少部分)阻止了文本的提取,有些是偶然的,有些是故意的。@mkl这里有一个例子:。在使用上面的代码提取时,有几段文字丢失了。我将您的示例链接添加到了您的问题中。你能指出哪些段落丢失了,这样这里的人就不必搜索了吗?