将pdf文件转换成txt文件
官网
文档
中英文pdf都可以,而且处理速度很快,一秒可以处理10页左右
python2:
pip install pdfminer
python3:
pip install pdfminer3k
pdf2txt.py
from pdfminer.pdfparser import PDFParser, PDFDocumentfrom pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreterfrom pdfminer.converter import PDFPageAggregatorfrom pdfminer.layout import LTTextBoxHorizontal, LAParamsfrom pdfminer.pdfinterp import PDFTextExtractionNotAllowedimport logging# 不显示warninglogging.propagate = Falselogging.getLogger().setLevel(logging.ERROR)pdf_filename = "1.pdf"txt_filename = "out.txt"device = PDFPageAggregator(PDFResourceManager(), laparams=LAParams())interpreter = PDFPageInterpreter(PDFResourceManager(), device)doc = PDFDocument()parser = PDFParser(open(pdf_filename, 'rb'))parser.set_document(doc)doc.set_parser(parser)doc.initialize()# 检测文档是否提供txt转换,不提供就忽略if not doc.is_extractable:raise PDFTextExtractionNotAllowedelse:with open(txt_filename, 'w', encoding="utf-8") as fw:print("num page:{}".format(len(list(doc.get_pages()))))for page in doc.get_pages():interpreter.process_page(page)# 接受该页面的LTPage对象layout = device.get_result()# 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象# 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等# 想要获取文本就获得对象的text属性,for x in layout:if isinstance(x, LTTextBoxHorizontal):results = x.get_text()fw.write(results)