我知道如何在命令行中使用pdfminer.six的pdf2txt.py工具;但是,我有许多PDF文件可以转换为txt文件,我不能只在命令行中一个接一个地完成它。我还没有发现如何在实际的python脚本中使用此工具。有什么想法吗?
答案 0 :(得分:6)
好消息是,您可以使用PDFMiner库重新创建可能在命令行上使用pdf2text运行的所有属性/命令。请参阅下面的基本示例:
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import BytesIO
def pdf_to_text(path):
manager = PDFResourceManager()
retstr = BytesIO()
layout = LAParams(all_texts=True)
device = TextConverter(manager, retstr, laparams=layout)
filepath = open(path, 'rb')
interpreter = PDFPageInterpreter(manager, device)
for page in PDFPage.get_pages(filepath, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
filepath.close()
device.close()
retstr.close()
return text
if __name__ == "__main__":
text = pdf_to_text("yourfile.pdf")
print(text)
如果需要应用页码或密码,则这些是PDFPage.get_pages中的可选参数。同样,如果您需要更改布局(例如全文本或页边距大小),则可以使用LAParams初始化程序的可选属性