自動化合並若干個word和pdf文件
阿新 • • 發佈:2021-01-13
需求:將若干個 word文 檔和 pdf 文件按指定順序合併為一個 pdf 文件,並將該過程自動化。
1. 將word轉換為pdf。
使用工具 docto[github],該工具可免費下載與使用,執行如下命令將*.docx檔案轉換為同名的*.pdf檔案。
docto -F inputFileName -O "outputFileName" -T wdFormatPDF
如需自動化將指定路徑下的所有*.docx檔案轉化為pdf檔案,首先建立一個指令碼,2pdf.bat
@echo off set filename=%~1 docto -F %filename% -O "%filename%.pdf" -T wdFormatPDF
然後建立一個python指令碼transform.py
import os
results = []
results += [each for each in os.listdir('..') if each.endswith('.docx')]
for i in range(0, len(results)):
os.system("2pdf.bat " + results[i])
2. 將多個pdf檔案按指定順序合併為一個 pdf 檔案
使用工具 pdftk,該工具支援輸入多個 *.pdf 檔案、同時支援 GUI 互動和命令列互動。通過執行如下命令可合併兩個pdf檔案:
pdftk.exe name1.pdf name2.pdf output mreged.pdf
然後執行如下指令碼,將當前目錄下的所有 *.pdf 檔案合併為 merged.pdf 檔案。
results = [] results += [each for each in os.listdir('.') if each.endswith('.pdf')] results.sort() output_filename = "merged.pdf" command_line = "" merged_num = 0 for result in results: command_line += "\"" + result + "\"" + " " command_line += "output " + output_filename os.system("pdftk.exe " + command_line)
這裡,可以通過將檔名加數字字首的方式,將待轉換、合併的文件統一命名,如下圖所示:
經過步驟
results.sort()
之後,列表即按遞增順序排列。
指令碼中對每個檔名加引號可處理包含空格的檔名。
3. 結論
以上兩個過程可對若干個文件進行自動化轉換與合併,程式碼僅供參考,可用的 pdf 工具也有很多,以描述思路為主。
另外,docto[github] 工具還支援將文件按指定頁碼輸出,可實現文件的制定範圍轉換、pdf 分割等功能。