2017-08-08 6 views
0

私はPyPDF2を使用して複数のpdfファイルを処理していますが、スクリプトがどこかでハングします。私が私のコンソールで見ることができるのは、 "offsetと同じ行にあるstartxref"です。私は正しいと警告しています。そうすれば、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 

呼び出し関数変換()の下にここに関連するコードをコピーhere

から、実施例を用いてpdfminerと鉱山を解決しました。このコードは私のためにうまく動作します。あなたはあなたが得ている正確なエラーであなたの投稿を更新できますか?このエラーは大きなPDFファイルでのみ発生しますか? –

+0

「何らかのエラー」と「何らかのファイル」で再現できません。その1つのエラーを一貫して生成する1つのファイルがある場合は、そのファイルを共有して確認することができます。 – usr2564301

答えて

0

私もこの問題に直面していて、PyPDF2を使用して解決できませんでした。私はすべてのエラーを再現できない

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

あなたの答えにリンクされたリソースの関連部分を引用できますか?現状では、あなたの答えはリンクの腐敗に非常に敏感です(リンクされたウェブサイトがダウンしたり変更された場合、回答は役に立たない)。 – mech

関連する問題