PyPDF2挂起处理

时间:2017-08-08 18:22:06

标签: python pypdf2

我正在使用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

1 个答案:

答案 0 :(得分:0)

我也面临这个问题,并且无法使用PyPDF2来解决它。我使用pdfminer使用here

中的示例解决了我的问题

复制下面的相关代码

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])