PDF檔案遵循一定的規范,例如精確定位了每個字符出現在頁面上的坐標、根據坐標繪制的各種形狀(線、矩形、曲線等),所以,用PDF格式傳輸和列印檔案可以保證格式的一致性,不會像Word那樣因為渲染引擎的不同而出現格式錯亂、多頁少頁等問題,
Word檔案則是一種流式布局,元素之間的相對距離決定了其呈現在頁面上的最終位置,因此適合編輯內容,前文內容的修改自動促發后續檔案布局的更新,
PDF轉Word是一個古老的話題,其難點在于建立從PDF基于元素位置的格式到Word基于內容的格式的映射,
PDF檔案實際并不存在段落、表格的概念,PDF轉Word要做的就是將PDF檔案中“橫、豎線條圍繞著文本”決議為Word的“表格”,將“文本及下方的一條橫線”決議為“文本下劃線”,等等,
pdf2docx支持Windows和Linux平臺,要求Python版本>=3.6,
pdf2docx安裝方式:
pip install pdf2docx

pdf2docx使用
from pdf2docx import Converter
思路如下
-
獲取pdf檔案路徑,
-
過濾出當前檔案夾中所有的pdf檔案,
-
提取pdf檔案名和后綴名,
-
檔案名+'docx'拼接重組word檔案(改變格式不變檔案名),
-
使用pdf2docx進行檔案轉換,
原始碼
代碼很簡單,原始碼奉上,思路都在注釋里已經說明
import os
from pdf2docx import Converter
def pdf_docx():
# 獲取當前作業目錄
file_path = os.getcwd()
# 遍歷所有檔案
for file in os.listdir(file_path):
# 獲取檔案后綴
suff_name = os.path.splitext(file)[1]
# 過濾非pdf格式檔案
if suff_name != '.pdf':
continue
# 獲取檔案名稱
file_name = os.path.splitext(file)[0]
# pdf檔案名稱
pdf_name = os.getcwd() + '\\' + file
# 要轉換的docx檔案名稱
docx_name = os.getcwd() + '\\' + file_name + '.docx'
# 加載pdf檔案
cv = Converter(pdf_name)
cv.convert(docx_name)
cv.close()
測驗
我們準備的pdf檔案有格式,有圖片,先來進行測驗

控制臺資訊列印如下,0.17秒完成了3頁pdf->docx檔案的轉換
[INFO] Start to convert E:\Python\pycharm++\GOGO資料\盧本偉.pdf
[INFO] [1/4] Opening document...
[INFO] [2/4] Analyzing document...
[WARNING] Replace font "MicrosoftYaHeiUI" with "Times New Roman" due to lack of data.
Deprecation: 'getText' removed from class 'Page' after v1.19.0 - use 'get_text'.
Deprecation: 'getImageList' removed from class 'Page' after v1.19.0 - use 'get_images'.
Deprecation: 'getImageBbox' removed from class 'Page' after v1.19.0 - use 'get_image_bbox'.
Deprecation: 'getPNGData' removed from class 'Pixmap' after v1.19.0 - use 'tobytes'.
Deprecation: 'getDrawings' removed from class 'Page' after v1.19.0 - use 'get_drawings'.
Deprecation: 'getLinks' removed from class 'Page' after v1.19.0 - use 'get_links'.
Deprecation: 'getArea' removed from class 'Rect' after v1.19.0 - use 'get_area'.
[INFO] [3/4] Parsing pages...
[INFO] (1/3) Page 1
[INFO] (2/3) Page 2
[INFO] (3/3) Page 3
[INFO] [4/4] Creating pages...
[INFO] (1/3) Page 1
[INFO] (2/3) Page 2
[INFO] (3/3) Page 3
[INFO] Terminated in 0.17s.
轉換完成后的docx檔案格式如下:

現在我們已經完成了pdf轉word的操作,這樣的局限性太大了,萬一我的pc沒有python環境怎么搞?
接下來我們對檔案進行打包,讓你隨時隨地可以轉換檔案
python 上常見的打包方式目是通過 pyinstaller 來實作的,
pip install pyinstaller

詳細步驟
pyinstaller 是一個命令列工具,下面是詳細步驟
1、cmd 切換到 python 檔案的目錄
2、執行命令 pyinstall -F pdfToword.py

執行完畢會發現生成了 3 個檔案夾

其中 dist 檔案夾就有我們已經打包完成的 exe 檔案,

3、雙擊 exe 就可以運行成功了,一鍵抓換pdf-word
夠方便的吧~~

今天的分享就到此結束啦,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/347134.html
標籤:python
