2017-12-09 25 views
1

私はpdfファイルを持っていますが、pdfminerとのテキストを解析したいのです。問題はLAParamsが失敗し、最後に行の一部分を与えることがあります。プットアウト pdf 次のようになります:私のPDFファイルはこのようになります私のコードはここにある output 、事前に感謝:Python pdfminer LAParamsはテキスト出力を混在させます

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

def convert_pdf_to_txt(path): 
    rsrcmgr = PDFResourceManager() 
    retstr = StringIO() 
    codec = 'utf-8' 
    laparams = LAParams() 
    device = TextConverter(rsrcmgr, retstr, codec=codec , laparams=laparams) 
    fp = open(path, 'rb') 
    interpreter = PDFPageInterpreter(rsrcmgr, device) 
    password = "" 
    caching = True 
    pagenos=set() 

    for PageNumer,page in enumerate(PDFPage.get_pages(fp, pagenos , password=password,caching=caching, check_extractable=True)): 
     interpreter.process_page(page) 

    text = retstr.getvalue() 

    fp.close() 
    device.close() 
    retstr.close() 
    return text 
print(convert_pdf_to_txt('C:\\Users\\Vagos\\Desktop\\europe.pdf')) 

答えて

0

は答えを自分自身を発見しました。 LAParams()のデフォルトはword_marginです。私の文書は明らかに時々大きくなり、問題を引き起こします。 LAParams() をLAParams(char_margin = 20)に置き換えて問題を解決しました。他の変数も表示されますhttp://nullege.com/codes/search/pdfminer.layout.LAParams

関連する問題