我如何将pdfminer用作库

我正在尝试使用pdfminer从pdf获取文本数据。我可以使用pdfminer命令行工具pdf2txt.py将数据成功提取到.txt文件中。我目前正在执行此操作,然后使用python脚本清理.txt文件。我想将pdf提取过程合并到脚本中,从而节省了一步。


当我找到此链接时,我以为自己正在研究某些东西,但是任何解决方案都没有成功。也许那里列出的功能需要再次更新,因为我使用的是pdfminer的较新版本。


我也尝试了此处显示的功能,但是也没有用。


我尝试的另一种方法是使用调用脚本内的脚本os.system。这也不成功。


我正在使用Python版本2.7.1和pdfminer版本20110227。


翻阅古今
浏览 476回答 3
3回答

MMMHUHU

这是我最终制作的对我有用的清理版本。给定其文件名,以下代码仅以PDF形式返回该字符串。我希望这可以节省一些时间。from pdfminer.pdfinterp import PDFResourceManager, process_pdffrom pdfminer.converter import TextConverterfrom pdfminer.layout import LAParamsfrom cStringIO import StringIOdef 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

侃侃无极

这是与最新版本一起使用的新解决方案:from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import TextConverterfrom pdfminer.layout import LAParamsfrom pdfminer.pdfpage import PDFPagefrom cStringIO import StringIOdef convert_pdf_to_txt(path):    rsrcmgr = PDFResourceManager()    retstr = StringIO()    codec = 'utf-8'    laparams = LAParams()    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)    fp = file(path, 'rb')    interpreter = PDFPageInterpreter(rsrcmgr, device)    password = ""    maxpages = 0    caching = True    pagenos=set()    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):        interpreter.process_page(page)    fp.close()    device.close()    str = retstr.getvalue()    retstr.close()    return str
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python