使用Python批量將Word轉(zhuǎn)PDF的實(shí)現(xiàn)技巧
大家好!今天我們來聊聊工作中可能遇到的一個(gè)“頭大”問題:如何批量將Word文檔轉(zhuǎn)成PDF?是不是光聽聽都感覺頭皮發(fā)麻?
不用擔(dān)心,今天我們就來分享一個(gè)Python小技巧,讓你在批量轉(zhuǎn)換文檔時(shí)再也不用抓狂!
為什么需要批量Word轉(zhuǎn)PDF?
想象一下,你是公司的行政小能手,每天面對(duì)成堆的合同、報(bào)告需要轉(zhuǎn)換格式,手動(dòng)操作簡直不敢想象的累。關(guān)鍵是,老板還老催!Python作為技術(shù)潮人必備的技能之一,這時(shí)候就派上用場了!
工具準(zhǔn)備
我們需要python-docx來處理Word文件內(nèi)容,comtypes庫用來調(diào)用Windows的腳本接口實(shí)現(xiàn)Word轉(zhuǎn)PDF操作。這兩位神器助攻絕對(duì)讓你事半功倍!
首先,安裝這兩個(gè)庫:
pip install python-docx comtypes
開工大吉
準(zhǔn)備好了嗎?讓我們劃開Python的面板,用代碼解決這個(gè)煩人的問題吧!
import os
import comtypes.client
def docx_to_pdf(docx_path, pdf_path):
word = comtypes.client.CreateObject('Word.Application')
doc = word.Documents.Open(docx_path)
doc.SaveAs(pdf_path, FileFormat=17) # 17 is the format type for PDFs
doc.Close()
word.Quit()
def batch_convert_docx_to_pdf(input_folder, output_folder):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for filename in os.listdir(input_folder):
if filename.endswith(".docx"):
docx_path = os.path.join(input_folder, filename)
pdf_filename = f"{os.path.splitext(filename)[0]}.pdf"
pdf_path = os.path.join(output_folder, pdf_filename)
docx_to_pdf(docx_path, pdf_path)
print(f"Converted {filename} to PDF.")
# 運(yùn)行批量轉(zhuǎn)換
batch_convert_docx_to_pdf(
"C:/Users/olive/Desktop/待轉(zhuǎn)換的Word",
"C:/Users/olive/Desktop/轉(zhuǎn)換后的PDF")代碼解讀
1、轉(zhuǎn)換函數(shù)docx_to_pdf
這個(gè)小函數(shù)負(fù)責(zé)干實(shí)事兒,把一個(gè)Word文件轉(zhuǎn)成PDF。FileFormat=17是指定保存為PDF格式的魔法數(shù)字。
2、批量轉(zhuǎn)換函數(shù) batch_convert_docx_to_pdf
這個(gè)函數(shù)會(huì)掃描指定的輸入文件夾,找到所有的 .docx 文件,逐個(gè)調(diào)用 docx_to_pdf 函數(shù)批量轉(zhuǎn)成PDF并輸出到指定文件夾。
如果還有不明白的地方,可以細(xì)讀一下下面的詳細(xì)解析:
1、首先,導(dǎo)入了必要的庫:
- os:用于文件路徑操作和文件夾操作。
- comtypes.client:用于與COM(Component Object Model)組件進(jìn)行通信的客戶端模塊,這里用于操作Microsoft Word應(yīng)用程序。2、定義了函數(shù)docx_to_pdf:
- 該函數(shù)使用comtypes庫創(chuàng)建了一個(gè)Word應(yīng)用程序?qū)ο?word)。
- 打開并操作對(duì)應(yīng)路徑的Word文檔,將其另存為PDF格式文件。
- 最后關(guān)閉Word文檔和退出Word應(yīng)用程序。3、定義了函數(shù)batch_convert_docx_to_pdf:
- 該函數(shù)接受兩個(gè)參數(shù):輸入文件夾路徑(input_folder)和輸出文件夾路徑(output_folder)。
- 如果輸出文件夾不存在,則創(chuàng)建輸出文件夾。
- 遍歷輸入文件夾中的所有文件,對(duì)擴(kuò)展名為".docx"的文件執(zhí)行轉(zhuǎn)換操作,調(diào)用docx_to_pdf函數(shù)將Word文檔轉(zhuǎn)換為PDF格式。4.調(diào)用batch_convert_docx_to_pdf函數(shù),傳入待轉(zhuǎn)換的Word文檔所在的文件夾路徑和轉(zhuǎn)換后的PDF文件存放的文件夾路徑。
激動(dòng)人心的測試
我i們先準(zhǔn)備幾個(gè)Word文檔,就用上次生成的合同文檔吧:

接著,要修改一下測試代碼,記得改成你自己的文件路徑:
# 運(yùn)行批量轉(zhuǎn)換
batch_convert_docx_to_pdf(
"C:/Users/olive/Desktop/待轉(zhuǎn)換的Word",
"C:/Users/olive/Desktop/轉(zhuǎn)換后的PDF")最后,運(yùn)行一下我們的代碼,檢驗(yàn)一下我們的成果吧:
在【轉(zhuǎn)換后的PDF】目錄下,成功生成了3個(gè)PDF文檔:

我們隨便打開一個(gè)PDF文檔,看一下效果:

效果非常棒??!
大功告成
怎么樣?是不是感覺超級(jí)簡單?只要執(zhí)行一次后,你就可以坐在辦公桌前翹腳喝咖啡,看著代碼幫你忙得不亦樂乎!在這個(gè)快節(jié)奏的時(shí)代,掌握一些小技能真的能幫我們省去不少時(shí)間。希望今天的分享能幫助到你,批量轉(zhuǎn)換Word文檔再也不是難題。
以上就是Python批量將Word轉(zhuǎn)PDF的實(shí)現(xiàn)技巧的詳細(xì)內(nèi)容,更多關(guān)于Python批量將Word轉(zhuǎn)PDF的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
導(dǎo)入pytorch時(shí)libmkl_intel_lp64.so找不到問題解決
這篇文章主要為大家介紹了導(dǎo)入pytorch時(shí)libmkl_intel_lp64.so找不到問題解決示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Python+matplotlib實(shí)現(xiàn)繪制等高線圖示例詳解
在matplotlib.pyplot中除了可以繪制常規(guī)圖表如折線、柱狀、散點(diǎn)等,還可以繪制常用在地理上的平面展示地型的等高線圖,本文主要為大家介紹了如何利用matplotlib繪制等高線圖,需要的可以參考一下2021-12-12
pycharm 更改創(chuàng)建文件默認(rèn)路徑的操作
今天小編就為大家分享一篇pycharm 更改創(chuàng)建文件默認(rèn)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python實(shí)現(xiàn)顏色rgb和hex相互轉(zhuǎn)換的函數(shù)
這篇文章主要介紹了python實(shí)現(xiàn)顏色rgb和hex相互轉(zhuǎn)換的函數(shù),可實(shí)現(xiàn)將rgb表示的顏色轉(zhuǎn)換成hex值的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
python Django 創(chuàng)建應(yīng)用過程圖示詳解
這篇文章主要介紹了python Django 創(chuàng)建應(yīng)用過程圖示詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python Django框架url反向解析實(shí)現(xiàn)動(dòng)態(tài)生成對(duì)應(yīng)的url鏈接示例
這篇文章主要介紹了Python Django框架url反向解析實(shí)現(xiàn)動(dòng)態(tài)生成對(duì)應(yīng)的url鏈接,結(jié)合實(shí)例形式分析了Django框架URL反向解析具體原理與應(yīng)用操作技巧,需要的朋友可以參考下2019-10-10
Python基礎(chǔ)之hashlib模塊subprocess模塊logging模塊
這篇文章主要為大家介紹了Python基礎(chǔ)之hashlib模塊subprocess模塊logging模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
python中watchdog文件監(jiān)控與檢測上傳功能
這篇文章主要介紹了python中watchdog文件監(jiān)控與檢測上傳功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Django Xadmin多對(duì)多字段過濾實(shí)例
這篇文章主要介紹了Django Xadmin多對(duì)多字段過濾實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04

