日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】pdfminer3k模块批量转换本地PDF文件

發布時間:2025/3/15 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】pdfminer3k模块批量转换本地PDF文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上一篇文章自己研究了一下如何批量將word或者ppt文件轉換為PDF文件,但是有時候我們也想要將pdf文件轉換為word或者txt文件,方便復制和處理。本文主要通過調用pdfminer3k模塊進行處理。

說明:本文是在Windows10下使用python最新的3.6版本虛擬環境

1. pdfminer3k相關鏈接:
GitHub:https://github.com/jaepil/pdfminer3k

PyPI:https://pypi.org/project/pdfminer3k/

2. 解析pdf文件用到的類:?
PDFParser:PDF文檔分析器:從一個文件中獲取數據?
PDFDocument:PDF文檔對象:保存獲取的數據,和PDFParser是相互關聯的?
PDFResourceManager:PDF資源管理器:用于存儲共享資源,如字體或圖像。
LAParams:PDF參數分析器:分析pdf文件參數
PDFPageAggregator:PDF聚合器:讀取獲取的文檔對象

PDFPageInterpreter:PDF文檔解析器:處理頁面內容變成Python可以解析?

3.分析思路:

整體思路為:構造文檔對象,解析文檔對象,提取所需內容

4. 具體的代碼:

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' #作者:cacho_37967865 #博客:https://blog.csdn.net/sinat_37967865 #文件:pdfConvertor.py #日期:2018-04-29 #備注:通過調用PDF解析器:pdfminer3k,批量將PDF文件轉換為word或者txt文件,先要在python環境安裝pdfminer3k在python運行環境通過命令行方式運行:pip3 install pdfminer3k ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' # F:\python_env\PaChong_env # -*- coding: utf-8 -*-from pdfminer.pdfparser import PDFParser, PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LTTextBoxHorizontal,LAParams import osdef pdf_to_word(folder,password):# 獲取指定目錄下面的所有文件files = os.listdir(folder)# 獲取pdf類型的文件放到一個列表里面pdfFiles = [f for f in files if f.endswith(".pdf")]for pdfFile in pdfFiles:# 將pdf文件放到指定的路徑下面pdfPath = os.path.join(folder, pdfFile)# 設置將要轉換后存放word文件的路徑wdPath = pdfPath# 判斷是否已經存在對應的word文件,如果不存在就加入到存放word的路徑內if wdPath[-3:] != 'doc':wdPath = wdPath + ".doc"fn = open(pdfPath, 'rb')# 創建一個PDF文檔分析器:PDFParserparser = PDFParser(fn)# 創建一個PDF文檔:PDFDocumentdoc = PDFDocument()# 連接分析器與文檔parser.set_document(doc)doc.set_parser(parser)# 提供初始化密碼,如果無密碼,輸入空字符串doc.initialize("")# 檢測文檔是否提供txt轉換,不提供就忽略if not doc.is_extractable:print("PDFTextExtractionNotAllowed")else:# 創建PDF資源管理器:PDFResourceManagerresource = PDFResourceManager()# 創建一個PDF參數分析器:LAParamslaparams = LAParams()# 創建聚合器,用于讀取文檔的對象:PDFPageAggregatordevice = PDFPageAggregator(resource, laparams=laparams)# 創建解釋器,對文檔編碼,解釋成Python能夠識別的格式:PDFPageInterpreterinterpreter = PDFPageInterpreter(resource, device)# doc.get_pages() 獲取page列表for page in doc.get_pages():# 利用解釋器的process_page()方法解析讀取單獨頁數interpreter.process_page(page)# 這里layout是一個LTPage對象,里面存放著這個page解析出的各種對象,# 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal等等,想要獲取文本就獲得對象的text屬性,# 使用聚合器get_result()方法獲取頁面內容layout = device.get_result()for out in layout:if (isinstance(out, LTTextBoxHorizontal)):print(out.get_text())with open(wdPath, 'a',encoding='utf-8') as f:f.write(out.get_text() + '\n')if __name__ == '__main__':pdf_to_word("F:\PythonProject\Pacong\docs","")

?

總結

以上是生活随笔為你收集整理的【Python】pdfminer3k模块批量转换本地PDF文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。