這篇文章主要介紹用Python把pdf轉(zhuǎn)換成word的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!成都創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,網(wǎng)站制作、成都做網(wǎng)站負(fù)責(zé)任的成都網(wǎng)站制作公司!一、下載所需要的庫(kù)
1.pdfminer 安裝庫(kù)命令
pip install pdfminer3k
pdfminer3k是pdfminer的Python 3端口。PDFMiner是從PDF文檔中提取信息的工具。與其他PDF相關(guān)的工具不同,它完全專注于獲取和分析文本數(shù)據(jù)。PDFMiner允許獲取頁(yè)面中文本的確切位置,以及其他信息,如
字體或線條。它包含一個(gè)PDF轉(zhuǎn)換器,可以將PDF文件轉(zhuǎn)換為其他文本格式(如HTML)。它有一個(gè)可擴(kuò)展的PDF解析器,可用于其他目的而不是文本分析。
2. docx 安裝庫(kù)命令
pip install python_docx
Python DocX目前是Python OpenXML的一部分,你可以用它打開Word 2007及以后的文檔,而用它保存的文檔可以在Microsoft Office 2007/2010, Microsoft Mac Office 2008, Google Docs, OpenOffice.org 3, and Apple iWork 08中打開。
二、代碼
注意:pdf中非圖片構(gòu)成的部分才能被成功轉(zhuǎn)換
1#-*- coding: UTF-8 -*- 2#!/usr/bin/python 3# -*- coding: utf-8 -*- 4 5import sys 6import importlib 7importlib.reload(sys) 8 9from pdfminer.pdfparser import PDFParser,PDFDocument 10from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 11from pdfminer.converter import PDFPageAggregator 12from pdfminer.layout import * 13from pdfminer.pdfinterp import PDFTextExtractionNotAllowed 14import os 15 16#設(shè)置工作目錄文件夾 17os.chdir(r'c:/users/dicey/desktop/codes/pdf-docx') 18 19''' 20解析pdf文件,獲取文件中包含的各種對(duì)象 21''' 22# 解析pdf文件函數(shù) 23def parse(pdf_path): 24 fp = open('diya.pdf', 'rb') # 以二進(jìn)制讀模式打開 25 # 用文件對(duì)象來創(chuàng)建一個(gè)pdf文檔分析器 26 parser = PDFParser(fp) 27 # 創(chuàng)建一個(gè)PDF文檔 28 doc = PDFDocument() 29 # 連接分析器 與文檔對(duì)象 30 parser.set_document(doc) 31 doc.set_parser(parser) 32 33 # 提供初始化密碼 34 # 如果沒有密碼 就創(chuàng)建一個(gè)空的字符串 35 doc.initialize() 36 37 # 檢測(cè)文檔是否提供txt轉(zhuǎn)換,不提供就忽略 38 if not doc.is_extractable: 39 raise PDFTextExtractionNotAllowed 40 else: 41 # 創(chuàng)建PDf 資源管理器 來管理共享資源 42 rsrcmgr = PDFResourceManager() 43 # 創(chuàng)建一個(gè)PDF設(shè)備對(duì)象 44 laparams = LAParams() 45 device = PDFPageAggregator(rsrcmgr, laparams=laparams) 46 # 創(chuàng)建一個(gè)PDF解釋器對(duì)象 47 interpreter = PDFPageInterpreter(rsrcmgr, device) 48 49 # 用來計(jì)數(shù)頁(yè)面,圖片,曲線,figure,水平文本框等對(duì)象的數(shù)量 50 num_page, num_image, num_curve, num_figure, num_TextBoxHorizontal = 0, 0, 0, 0, 0 51 52 # 循環(huán)遍歷列表,每次處理一個(gè)page的內(nèi)容 53 for page in doc.get_pages(): # doc.get_pages() 獲取page列表 54 num_page += 1 # 頁(yè)面增一 55 interpreter.process_page(page) 56 # 接受該頁(yè)面的LTPage對(duì)象 57 layout = device.get_result() 58 for x in layout: 59 if isinstance(x,LTImage): # 圖片對(duì)象 60 num_image += 1 61 if isinstance(x,LTCurve): # 曲線對(duì)象 62 num_curve += 1 63 if isinstance(x,LTFigure): # figure對(duì)象 64 num_figure += 1 65 if isinstance(x, LTTextBoxHorizontal): # 獲取文本內(nèi)容 66 num_TextBoxHorizontal += 1 # 水平文本框?qū)ο笤鲆?67 # 保存文本內(nèi)容 68 with open(r'test2.doc', 'a',encoding='utf-8') as f: #生成doc文件的文件名及路徑 69 results = x.get_text() 70 f.write(results) 71 f.write('\n') 72 print('對(duì)象數(shù)量:\n','頁(yè)面數(shù):%s\n'%num_page,'圖片數(shù):%s\n'%num_image,'曲線數(shù):%s\n'%num_curve,'水平文本框:%s\n' 73 %num_TextBoxHorizontal) 74 75 76if __name__ == '__main__': 77 pdf_path = r'diya.pdf' #pdf文件路徑及文件名 78 parse(pdf_path)
以上是用Python把pdf轉(zhuǎn)換成word的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
當(dāng)前標(biāo)題:用Python把pdf轉(zhuǎn)換成word的方法-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://muchs.cn/article48/icdhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、自適應(yīng)網(wǎng)站、電子商務(wù)、網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容