#-*- coding: utf-8 -*-
from win32com.client import Dispatch
# pip install pywin32
from os import walk
import os
wdFormatPDF = 17
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))
doc_files = []
directory = os.getcwd()+"\\word"
output_dir =os.getcwd()+"\\pdf"
for root, _, filenames in walk(directory):
for file in filenames:
if file.endswith(".doc") or file.endswith(".docx"):
print("转换{}中......".format(file))
doc2pdf(os.path.join(root, file), file, output_dir)