将PDF转换为文本 - 保留表的行 - Python

时间:2012-03-07 14:44:49

标签: python pdf text converter

我在pdf文档中有表格,我想将其转换为文本。我找到了以下代码将pdf转换为文本。但是,当它转换时,它不会将数据保存在正确的行中。它将所有内容放在一长串的字符串中。使用Python从PDF转换为文本时,有没有办法保留表中的行?

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

2 个答案:

答案 0 :(得分:1)

Pdfminer附带了一个名为pdf2txt.py的文本提取工具,它可以分析布局。您可以尝试使用它,或研究它以了解它是如何工作的。

答案 1 :(得分:0)

A-PDF to Text使用表格转换更好的PDF作为其他工具!