PDF文件转TXT文件

利用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+"路径下查看")

猜你喜欢

转载自blog.csdn.net/qq_39038983/article/details/86510435
今日推荐