Python實(shí)現(xiàn)將PDF轉(zhuǎn)DOCX的超簡單教程(附源碼)
在日常工作中,我們經(jīng)常需要將 PDF 文件轉(zhuǎn)換為 Word(.docx) 方便編輯。今天分享一個(gè)非常簡單、實(shí)用的 Python 工具 —— pdf2docx,僅需幾行代碼就能完成轉(zhuǎn)換!
一、環(huán)境準(zhǔn)備
使用 pdf2docx 庫前,需要安裝它:
pip install pdf2docx
如果你使用的是國內(nèi)源(推薦):
pip install pdf2docx -i https://pypi.tuna.tsinghua.edu.cn/simple
安裝完成后即可使用。
二、PDF 轉(zhuǎn) DOCX 完整示例代碼
下面是一段直接可運(yùn)行的示例代碼,僅需三步即可完成 PDF → Word:
from pdf2docx import Converter
pdf_file = "1.pdf"
docx_file = "2.docx"
# 創(chuàng)建轉(zhuǎn)換器對象
cv = Converter(pdf_file)
# 執(zhí)行轉(zhuǎn)換
cv.convert(docx_file, start=0, end=None)
# 關(guān)閉轉(zhuǎn)換器
cv.close()
print("轉(zhuǎn)換完成!")
代碼說明
pdf_file:要轉(zhuǎn)換的 PDF 文件路徑
docx_file:需要輸出的 Word 文件路徑
cv.convert():
start=0表示從第一頁開始end=None表示轉(zhuǎn)換到最后一頁
轉(zhuǎn)換完成后需要執(zhí)行 cv.close() 釋放資源
三、運(yùn)行效果
運(yùn)行后將在當(dāng)前目錄生成一個(gè) 2.docx 文件,格式盡可能保持與原 PDF 一致,非常適合文字類文檔。
四、常見問題
PDF 轉(zhuǎn)換后格式不完美
這是 PDF → Word 轉(zhuǎn)換的常見問題,尤其是復(fù)雜排版或掃描件。
你可以嘗試:
- 使用
ocrmypdf處理掃描件 - 提升 PDF 清晰度
- 使用 Adobe Acrobat 或 WPS 的轉(zhuǎn)換功能對比效果
五、方法補(bǔ)充
Python使用pdf2docx和os模塊實(shí)現(xiàn)批量將PDF轉(zhuǎn)Word文檔
注意事項(xiàng):
1、PDF文檔的后綴務(wù)必是“.pdf”,否則轉(zhuǎn)換不成功
2、大部分的PDF文檔都可用這個(gè)程序來轉(zhuǎn)換,如果是圖片生成的Pdf文檔,則轉(zhuǎn)換不成功,原因是要將圖片里的文字轉(zhuǎn)換成文檔涉及到人工智能的知識,它已超出這個(gè)程序的能力范圍。但也不用慌,遇到此情況,可以用QQ的文件助手來幫忙,此處不贅述。
完整代碼:
import os
from pdf2docx import Converter
def pdf_docx():
# 獲取當(dāng)前工作目錄
file_path = r'C:\Users\test'
# 遍歷所有文件
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 = file_path + '\\' + file
# 要轉(zhuǎn)換的docx文件名稱
docx_name = file_path + '\\' + file_name + '.docx'
# 加載pdf文檔
cv = Converter(pdf_name)
cv.convert(docx_name)
cv.close()
if __name__ == '__main__':
pdf_docx()
Python使用pdf2docx模塊實(shí)現(xiàn)PDF到Word的批量轉(zhuǎn)換
以下是一個(gè)可以批量將 PDF 文件轉(zhuǎn)換為 Word 文檔的 Python 代碼示例,代碼實(shí)現(xiàn)了遍歷指定文件夾下的所有 PDF 文件,并逐個(gè)進(jìn)行轉(zhuǎn)換的功能:
import os
from pdf2docx import Converter
def pdf_to_docx(pdf_folder, docx_folder):
"""
將指定文件夾下的PDF文件批量轉(zhuǎn)換為Word文檔
:param pdf_folder: PDF文件所在文件夾路徑
:param docx_folder: 轉(zhuǎn)換后Word文檔存放的文件夾路徑
"""
# 檢查目標(biāo)文件夾是否存在,不存在則創(chuàng)建
if not os.path.exists(docx_folder):
os.makedirs(docx_folder)
# 遍歷PDF文件夾下的所有文件
for file in os.listdir(pdf_folder):
if file.endswith('.pdf'):
pdf_file_path = os.path.join(pdf_folder, file)
docx_file_path = os.path.join(docx_folder, os.path.splitext(file)[0] + '.docx')
try:
# 創(chuàng)建Converter對象開始轉(zhuǎn)換
cv = Converter(pdf_file_path)
cv.convert(docx_file_path)
cv.close()
print(f"{pdf_file_path} 已成功轉(zhuǎn)換為 {docx_file_path}")
except Exception as e:
print(f"轉(zhuǎn)換 {pdf_file_path} 時(shí)出現(xiàn)錯(cuò)誤: {e}")
if __name__ == "__main__":
# 指定PDF文件所在文件夾路徑
pdf_folder_path = r'C:\Users\example\pdfs'
# 指定轉(zhuǎn)換后Word文檔存放的文件夾路徑
docx_folder_path = r'C:\Users\example\docxs'
pdf_to_docx(pdf_folder_path, docx_folder_path)代碼解析
函數(shù)定義部分:定義了pdf_to_docx函數(shù),它接受兩個(gè)參數(shù),pdf_folder表示存放 PDF 文件的文件夾路徑,docx_folder表示轉(zhuǎn)換后要存放 Word 文檔的文件夾路徑。在函數(shù)內(nèi)部,首先檢查docx_folder是否存在,如果不存在就創(chuàng)建該文件夾,用于確保后續(xù)能正常存放轉(zhuǎn)換后的文件。
文件遍歷與轉(zhuǎn)換部分:通過os.listdir函數(shù)遍歷pdf_folder下的所有文件,對于以.pdf結(jié)尾的文件,先拼接出其完整路徑(pdf_file_path),再根據(jù)文件名(去除.pdf后綴后)拼接出轉(zhuǎn)換后 Word 文檔的路徑(docx_file_path)。接著使用Converter類創(chuàng)建對象并調(diào)用convert方法進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換完成后關(guān)閉對象。如果在轉(zhuǎn)換過程中出現(xiàn)任何異常,會(huì)通過try-except語句捕獲并打印出錯(cuò)誤信息。
主程序部分:在if __name__ == "__main__"語句塊中,指定了實(shí)際的pdf_folder_path(存放 PDF 文件的文件夾路徑)和docx_folder_path(存放 Word 文檔的文件夾路徑),然后調(diào)用pdf_to_docx函數(shù)開始批量轉(zhuǎn)換操作。
六、總結(jié)
只需十幾行代碼,就可以實(shí)現(xiàn) PDF 文件轉(zhuǎn) Word,適合批量處理、自動(dòng)化任務(wù)等場景。
如果你想繼續(xù)學(xué)習(xí) PDF 操作 / Word 處理 / Python 文檔自動(dòng)化 也歡迎繼續(xù)關(guān)注!
到此這篇關(guān)于Python實(shí)現(xiàn)將PDF轉(zhuǎn)DOCX的超簡單教程(附源碼)的文章就介紹到這了,更多相關(guān)Python PDF轉(zhuǎn)DOCX內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python閉包原理與nonlocal關(guān)鍵字實(shí)戰(zhàn)指南
閉包是Python中一個(gè)強(qiáng)大而優(yōu)雅的特性,掌握它能讓你寫出更靈活、更模塊化的代碼,本文將深入解析閉包的原理,并通過實(shí)戰(zhàn)案例帶你徹底理解nonlocal關(guān)鍵字,感興趣的朋友跟隨小編一起看看吧2026-03-03
python創(chuàng)建一個(gè)最簡單http webserver服務(wù)器的方法
這篇文章主要介紹了python創(chuàng)建一個(gè)最簡單http webserver服務(wù)器的方法,實(shí)例分析了Python操作http創(chuàng)建服務(wù)器端的相關(guān)技巧,需要的朋友可以參考下2015-05-05
python 實(shí)現(xiàn)在tkinter中動(dòng)態(tài)顯示label圖片的方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)在tkinter中動(dòng)態(tài)顯示label圖片的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
pandas round方法保留兩位小數(shù)的設(shè)置實(shí)現(xiàn)
本文主要介紹了pandas round方法保留兩位小數(shù)的設(shè)置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Python中staticmethod和classmethod的作用與區(qū)別
今天小編就為大家分享一篇關(guān)于Python中staticmethod和classmethod的作用與區(qū)別,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10

