WPS的只有VIP可以格式转换,我们将实现代码转换,本程序主要功能:
1.将word转成PDF
2.将ppt转成PDF
主要用到comtypes
安装pip install comtypes
直接上代码
import os
import comtypes.client
def get_path_for_word():
# 获取当前运行路径
os.chdir("E:\\python")
path = os.getcwd()
print('当前路径' + path)
# 获取所有文件名的列表
filename_list = os.listdir(path)
# 获取所有word文件名列表
wordname_list = [filename for filename in filename_list \
if filename.endswith((".doc", ".docx"))]
for wordname in wordname_list:
# 分离word文件名称和后缀,转化为pdf名称
print('获取文件列表' + wordname)
pdfname = os.path.splitext(wordname)[0] + '.pdf'
# 如果当前word文件对应的pdf文件存在,则不转化
if pdfname in filename_list:
continue
# 拼接 路径和文件名
wordpath = os.path.join(path, wordname)
pdfpath = os.path.join(path, pdfname)
#生成器
yield wordpath,pdfpath
def get_path_for_ppt():
# 获取当前运行路径
os.chdir("E:\\python")
path = os.getcwd()
print('当前路径' + path)
# 获取所有文件名的列表
filename_list = os.listdir(path)
# 获取所有word文件名列表
wordname_list = [filename for filename in filename_list \
if filename.endswith((".ppt", ".pptx"))]
for wordname in wordname_list:
# 分离word文件名称和后缀,转化为pdf名称
print('获取文件列表' + wordname)
pdfname = os.path.splitext(wordname)[0] + '.pdf'
# 如果当前word文件对应的pdf文件存在,则不转化
if pdfname in filename_list:
continue
# 拼接 路径和文件名
wordpath = os.path.join(path, wordname)
pdfpath = os.path.join(path, pdfname)
#生成器
yield wordpath,pdfpath
def convert_word_to_pdf():
word = comtypes.client.CreateObject("Word.Application")
word.Visible = 0
for wordpath,pdfpath in get_path_for_word():
newpdf = word.Documents.Open(wordpath)
newpdf.SaveAs(pdfpath, FileFormat=17)
newpdf.Close()
def convert_ppt_to_pdf():
# ppt转化为pdf
FileFormat=32
ppt = comtypes.client.CreateObject("Powerpoint.Application")
ppt.Visible = 1
for wordpath,pdfpath in get_path_for_ppt():
newpdf = ppt.Presentations.Open(wordpath)
newpdf.SaveAs(pdfpath, FileFormat)
newpdf.Close()
if __name__ == "__main__":
convert_word_to_pdf()
#convert_ppt_to_pdf()