不知道大家有沒有想要一次轉換好幾個word檔成pdf檔的經驗呢?
雖然有很不少線上工具可以用
而且有些 word 本身也有支援轉檔的功能
可是一個一個檔案來操作實在是太累了
今天下午在處理這件事的時候,就順手把
python 原始碼打包成執行檔了
原始碼與執行檔案連結跟大家分享:
https://drive.google.com/drive/folders/1SRHodqTzwkxZu_SRtTeCCRdhCDbYrQQB?usp=sharing#coding:utf8
import os, sys
from imp import reload
reload(sys)
from win32com.client import Dispatch, constants, gencache
def doc2pdf(sourceF,tartgetF):
#sourceF = 'D:\\1.doc'
#tartgetF = 'D:\\1.pdf'
print(sourceF,' ==> ',tartgetF)
# enable python COM support for Word 2007
# this is generated by: makepy.py -i "Microsoft Word 12.0 Object Library"
gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)
# 開始轉換
w = Dispatch("Word.Application")
try:
doc = w.Documents.Open(sourceF, ReadOnly=1)
doc.ExportAsFixedFormat(tartgetF, constants.wdExportFormatPDF, \
Item=constants.wdExportDocumentWithMarkup,
CreateBookmarks=constants.wdExportCreateHeadingBookmarks)
except: print('exception')
finally: w.Quit(constants.wdDoNotSaveChanges)
if os.path.isfile(tartgetF):print('translate success')
else:print('translate fail')
desktop = os.path.join(os.path.join(os.path.expanduser('~')), 'Desktop')
print('DOC/DOCX to PDF batch converter . by K.Y. Lee (c) 2020 All Rights Reserved')
folder = input('enter the target folder of MS doc/docx files on YOUR Desktop\n輸入欲轉換之word文件資料夾名稱(桌面上)[不需完整路徑]:')
DIR = desktop+'\\'+folder+"\\"
files = os.listdir(DIR)
for f in files:
ii = f.find('.doc')
if ii>0:
doc2pdf(DIR+f,DIR+f[:ii]+'.pdf')