1. 程式人生 > 實用技巧 >Python自動化辦公 實現批量Word轉pdf

Python自動化辦公 實現批量Word轉pdf

本期資源是Python自動化辦公的一個案例

Python在自動化辦公有很強大的應用,使用Python幾百條資料10秒即可搞定,這和Python專門適合處理重複性的工作不無關係,這裡作者給各位朋友介紹一個批量轉pdf的案例,不是太難

這裡需要匯入幾個模組

from win32com.client import Dispatch # 沒有的話輸入pip install pywin32命令 即可安裝
from os import walk
import os

os是用於檔案處理常用的模組,至於Dispatch,它是提供了一個介面, win32提供了多種word轉換為其他檔案的介面,其中FileFormat=17是轉換為pdf格式.

之後轉換檔案邏輯也很簡單,首先需要提取出檔名,word檔案的字尾是doc或docx,那麼將字尾名替換為pdf即可轉換,這裡用到replace方法,即replace(‘docx’,‘pdf’).replace(‘doc’,‘pdf’)因為有可能字尾是doc,所以需要2次判斷。

值得注意的是,轉換的資料夾事先要存在,否則會報錯誤。

下面是專案的原始碼

from win32com.client import Dispatch # pip install pywin32
from os import walk
import os

wdFormatPDF = 17  # win32提供了多種word轉換為其他檔案的介面,其中FileFormat=17是轉換為pdf
def doc2pdf(input_file, input_file_name, output_dir): try: word = Dispatch('Word.Application') doc = word.Documents.Open(input_file) except Exception as e: print("word無法開啟, 發生如下錯誤:\n{}".format(e)) try: pdf_file_name = input_file_name.replace(".docx", ".pdf
").replace(".doc", ".pdf") pdf_file = os.path.join(output_dir, pdf_file_name) doc.SaveAs(pdf_file, FileFormat=wdFormatPDF) doc.Close() word.Quit() print("成功轉換\"{}\"".format(input_file_name)) print() except Exception as e: print("檔案儲存失敗, 發生如下錯誤:\n{}".format(e)) if __name__ == "__main__": path_in=input("請輸入word資料夾的路徑(絕對路徑) 要保證存在 建議複製貼上") path_out=input("請輸入pdf資料夾的路徑(絕對路徑) 要保證存在 建議複製貼上") doc_files = [] directory = path_in# word資料夾 output_dir =path_out # pdf資料夾 for root, _, filenames in walk(directory): # 第2個返回值是dirs, 用不上使用_佔位 for file in filenames: if file.endswith(".doc") or file.endswith(".docx"): print("轉換{}中......".format(file)) doc2pdf(os.path.join(root, file), file, output_dir)

在這裡還是要推薦下我自己建的Python開發交流學習(qq)群:810735403,群裡都是學Python開發的,如果你正在

學習Python ,歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有Python軟體開發相關的),包括我自己整理的一份

2021最新的Python進階資料和高階開發教程,歡迎進階中和想深入Python的小夥伴!