1

我正在使用 PyPDF2 处理多个 pdf 文件,但我的脚本挂在某个地方。我在控制台中看到的只是一些“与偏移量在同一行上的 startxref”,我正确的是一个警告,所以它仍然应该转到 finally 块并返回一个空字符串。

难道我做错了什么?

import PyPDF2
import sys
import os
def decode_pdf(src_filename):           
    out_str=""
    try:
        f = open(str(src_filename), "rb")           
        read_pdf = PyPDF2.PdfFileReader(f)
        number_of_pages = read_pdf.getNumPages()
        for i in range(0,number_of_pages):
            page = read_pdf.getPage(i)
            out_str = out_str + " " + page.extractText()
        out_str = ''.join(out_str.splitlines())
        f.close()
    except:
        print("Exception on pdf")
        print(sys.exc_info())
        out_str = ""
    finally:
        return out_str
4

1 回答 1

1

我也面临这个问题,无法使用 PyPDF2 解决。我使用此处的示例使用 pdfminer 解决了我的问题

在下面复制相关代码

from cStringIO import StringIO
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage

def convert(fname, pages=None):
    if not pages:
        pagenums = set()
    else:
        pagenums = set(pages)

    output = StringIO()
    manager = PDFResourceManager()
    converter = TextConverter(manager, output, laparams=LAParams())
    interpreter = PDFPageInterpreter(manager, converter)

    infile = file(fname, 'rb')
    for page in PDFPage.get_pages(infile, pagenums):
        interpreter.process_page(page)
    infile.close()
    converter.close()
    text = output.getvalue()
    output.close
    return text 

调用函数 convert() 如下

convert('myfile.pdf', pages=[5,7])
于 2018-01-26T23:22:56.387 回答