单个word(.doc或.docx)文件到pdf文件的转换可以通过Word输出另存为功能来实现,但当文件个数很多时,重复性操作就变地很麻烦。于是我想到利用Python写一个批量转换的脚本,经测试,该脚本可对.doc及.docx文件中的一种或两种进行pdf转换。代码如下:
# convert .doc or .docx files to .pdf files in bulk
import os
from win32com.client import Dispatch
def word2pdf(abs_path,obj_path,files) : # word到pdf的转换
if os.path.exists(obj_path) :
print("目标文件夹已经存在")
else :
os.mkdir(obj_path)
print("目标文件夹创建成功")
file_count=0
word=Dispatch("Word.Application")
for file in files :
file_count+=1
doc=word.Documents.Open(abs_path+file)
if file.endswith(".doc") :
doc.SaveAs(obj_path+file.replace(".doc" ,".pdf"),FileFormat=17)
else :
doc.SaveAs(obj_path+file.replace(".docx" ,".pdf"),FileFormat=17)
doc.Close()
word.Quit()
return file_count
def get_file(abs_path) : # 获取待转化的word文件名
filenames=[]
raw_names=os.listdir(abs_path)
for raw_name in raw_names :
if raw_name.endswith(".docx") or raw_name.endswith(".doc") :
filenames.append(raw_name)
else :
continue
return filenames
if __name__ == "__main__" :
abs_path=("C:/Users/Young/Desktop/") # word文件存放地址
obj_path=("C:/Users/Young/Desktop/pdf_folder/")# 转换后的pdf文件存放地址
files=get_file(abs_path)
file_number=word2pdf(abs_path,obj_path,files)
print("{}个word文件已转换为相应pdf文件".format(file_number))
经检测,可以实现预期目的,输出如下:
目标文件夹创建成功
4个word文件已转换为相应pdf文件
>>>
需要注意的是,首先需要在cmd命令窗口输入“pip install pywin32"导入win32库。