利用python实现PDT转TXT:
from pdfminer.pdfparser import PDFParser,PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import *
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
def toTxt(doc,txtPath):
#创建PDF资源管理器
rsrcmgr=PDFResourceManager()
#创建PDF设备对象
laparams=LAParams()
device=PDFPageAggregator(rsrcmgr,laparams=laparams)
#创建一个PDF解释器对象
interpreter=PDFPageInterpreter(rsrcmgr,device)
for page in doc.get_pages():
interpreter.process_page(page)
layout=device.get_result()
for x in layout:
if(isinstance(x,LTTextBoxHorizontal)):
with open(txtPath,'a') as ft:
results = x.get_text()
ft.write(results+'\n')
def PdfTOTxt(pdfPath,txtPath):
fp=open(pdfPath,'rb')#以二进制打开pdf文档
parser=PDFParser(fp)#创建pdf分析器
doc=PDFDocument()#创建pdf文档
#链接分析器和文档对象
parser.set_document(doc)
doc.set_parser(parser)
#提供初始化密码
doc.initialize()
#检测文档是否提供txt转化
if not doc.is_extractable:
raise PDFTextExtractionNotAllowed
else:
toTxt(doc,txtPath)
if __name__=="__main__":
pdfPath=input("请输入PDF文件所在的位置('/'为分隔符):")
txtPath=input("请输入TXT文件所在的位置('/'为分隔符):")
PdfTOTxt(pdfPath,txtPath)
print("文件已转化成功,请在"+txtPath+"路径下查看")