2017-08-08 69 views
0

我正在使用PyPDF2處理多個pdf文件,但我的腳本掛在某處。我在控制檯中看到的是一些「startxref與offset偏移量相同的行」,我正確的是一個警告,所以它仍然應該到finally塊並返回一個空字符串。PyPDF2掛起處理

我做錯了什麼?

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 
+0

我不能複製任何錯誤,在這裏複製下面

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 

通話功能轉換()相關的代碼。這段代碼對我來說工作得很好。你可以用你得到的確切錯誤更新你的文章嗎?這個錯誤只發生在大型PDF文件上嗎? –

+0

無法用「某些錯誤」和「某個文件」重現。如果有一個文件始終產生這一個錯誤,請分享它,以便我們檢查。 – usr2564301

回答

0

我也遇到過這個問題,無法使用PyPDF2解決它。我解決了礦山使用的例子pdfminer從here

如下

convert('myfile.pdf', pages=[5,7]) 
+1

您可以在答案中引用鏈接資源的相關部分嗎?原來,您的答案非常容易受到鏈接腐爛的影響(即,如果鏈接網站發生故障或更改,您的答案無用)。 – mech