2012-03-07 78 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,它具有分析布局的能力。你可以尝试使用它,或者研究它看看它是如何工作的。