2012-03-07 77 views
2

我有要轉換爲文本的pdf文檔中的表格。我發現下面的代碼將PDF轉換爲文本。但是,轉換時,它不會將數據保留在正確的行中。它將所有內容放在一行字符串中。使用Python轉換爲PDF文本時,是否有任何方法可以保留表中的行?將PDF轉換爲文本 - 保留表格的行 - Python

from pdfminer.pdfparser import PDFDocument, PDFParser 
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, process_pdf 
from pdfminer.pdfdevice import PDFDevice, TagExtractor 
from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter 
from pdfminer.cmapdb import CMapDB 
from pdfminer.layout import LAParams 
from cStringIO import StringIO 

def convert_pdf(path): 

    rsrcmgr = PDFResourceManager() 
    retstr = StringIO() 
    codec = 'utf-8' 
    laparams = LAParams() 
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams) 

    fp = file(path, 'rb') 
    process_pdf(rsrcmgr, device, fp) 
    fp.close() 
    device.close() 

    str = retstr.getvalue() 
    retstr.close() 
    return str 

回答

1

Pdfminer帶有文本提取工具,名爲pdf2txt.py,它具有分析佈局的能力。你可以嘗試使用它,或者研究它看看它是如何工作的。