PyPDF2忽略内容,仅获取水印

时间:2018-06-14 13:23:28

标签: python pypdf2

我有成千上万的PDF文件,例如this one

我正在尝试使用PyPDF2将它们转换为纯文本(代码如下)。但PyPDF2显然只是“看到”水印,而不是内容本身。我能在这做什么?

days.Text = days(DateTime.Now);

我在macOS 10.13.14上使用Python 3.5.1和PyPDF2 1.26.0。

1 个答案:

答案 0 :(得分:0)

有时pdfminer3k会带来更好的结果。请签出“ How to read pdf file using pdfminer3k?

我已经测试了以下代码,并且提取了文本。但是,提取结果并非100%准确...

# Open the example file
fp = open('Decisao_10166720039201098.pdf', 'rb')

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine

parser = PDFParser(fp)
doc = PDFDocument()
parser.set_document(doc)
doc.set_parser(parser)
doc.initialize('')
rsrcmgr = PDFResourceManager()
laparams = LAParams()
laparams.char_margin = 1.0
laparams.word_margin = 1.0
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
extracted_text = ''

for page in doc.get_pages():
    interpreter.process_page(page)
    layout = device.get_result()
    for lt_obj in layout:
        if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
            extracted_text += lt_obj.get_text()

print(extracted_text)