工作上的需求要收各單位的資料,做成會議議程,
但各單位給的資料通常檔案很亂,而且給的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檔:已完成')
目標資料夾處理後的結果:
以上即完成本次目標。