a white tablet with a few pens and a few pencils

Python學習筆記: 將word文件doc或docx檔批次轉成pdf檔

工作上的需求要收各單位的資料,做成會議議程,
但各單位給的資料通常檔案很亂,而且給的word檔案,
有的是舊版,有的是新版。

雖然word檔案開啟後,可以存成pdf檔,
但有用過這種方法的網友就會知道,其實有點花時間,
尤其是要處理很多檔案的時候,太浪費時間了。

首先看一下目標資料夾的狀況:

接下來就來用程式處理了:

import os
import re
import win32com.client as win32

# 設定目標資料夾
path = 'D:\\temp\\test'
files = os.listdir(path)

for file in files:
    # 將檔案名稱以regex分成2組,第1組是附件開頭的檔名,第2組是附檔名為doc或docx
    pattern = '(附件\d+-\d_.+)(.docx?$)'
    target = re.findall(pattern, file)
    if target:
        print(file)
        
        # target[0][0]是目標檔案名稱,target[0][1]是doc或docx的附檔名
        in_file = path + "\\" + target[0][0] + target[0][1]
        
        # 處理完的檔案,附檔名改成pdf
        out_file = path + "\\" + target[0][0] + ".pdf"
        
        word = win32.DispatchEx("Word.Application")
        doc = word.Documents.Open(in_file)
        
        doc.SaveAs(out_file, FileFormat=17) # FileFormat=17 是存成pdf檔
        doc.Close()
        word.Quit()
print('-------------------------')
print('所有word檔轉換pdf檔:已完成')

目標資料夾處理後的結果:

以上即完成本次目標。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *