后续优化:Python_创建exe文件,将所在目录的word和ppt转pdf(V0.3)
对于此前 用python将ppt转为pdf 尝试的补充与功能扩展:
配置好环境后,双击运行,将当前目录下Word和PPT转为PDF
此前代码中的路径符问题:单个的 '\' 识别为转义字符,故使用 '\\'
print('hello\nGeorgeHua') #转义字符,换行
print('hello\\nGeorgeHua') #增加“\” 取消单个转义
print(r'hello\nGeorge\nHua') #取消转义 字符串前面: r
代码
# 作用:遍历当前目录,将word和PPT转为同名pdf文件
import win32com.client
import os
def ppt2pdf(filename, output_filename):
"""
路径+名称
"""
#打开PPT程序
ppt_app = win32com.client.Dispatch('PowerPoint.Application')
# ppt_app.Visible = True # 程序操作应用程序的过程是否可视化
#通过PPT的应用程序打开指定的PPT文件
ppt = ppt_app.Presentations.Open(filename)
#另存为:参数:17是ppt转图片,32是ppt转pdf。
ppt.SaveAs(output_filename, 32)
print(output_filename+"导出成pdf成功!!!")
# 退出PPT程序
ppt_app.Quit()
def doc2pdf(doc_filename, pdf_filename):
"""
参数为路径+名称
"""
#打开word程序
word_app = win32com.client.Dispatch('Word.Application')
#通过Word应用程序打开指定的.docx文件
doc_open = word_app.Documents.Open(doc_filename)#,ReadOnly = 1
#另存为参数说明:4:txt;10:html;docx:16;pdf:17 ?
doc_open.SaveAs(pdf_filename, 17)
#doc_open.Close() #关闭打开的文件
print(pdf_filename+"导出成pdf成功!!!")
# 退出程序
word_app.Quit()
dirname = os.getcwd() #获取当前目录
# 列出指定目录的内容
filenames = os.listdir(dirname)
# for循环依次访问指定目录的所有文件名
for filename in filenames:
if filename.endswith('ppt') or filename.endswith('pptx'):
# 将filename以.进行分割,返回2个信息,文件的名称和文件的后缀名
base, ext = filename.split('.') # 名称后缀分割
new_name = base + '.pdf' # 生成文件(名.pdf)
#原文件 路径+名称
filename = dirname + '\\' + filename
#生成文件 路径+名称
output_filename = dirname + '\\' + new_name
#调用转换函数
ppt2pdf(filename, output_filename)
#word转pdf
if filename.endswith('doc') or filename.endswith('docx'):
# 将filename以.进行分割,返回2个信息,文件的名称和文件的后缀名
base, ext = filename.split('.') # 名称后缀分割
new_name = base + '.pdf'
doc_filename = dirname + '\\' + filename #带有位置的完整名称
pdf_filename = dirname + '\\' + new_name #输出路径及名称
#此处双斜杠,转义字符相关知识
# 调用转换函数
doc2pdf(doc_filename, pdf_filename)
var=input('') #直接双击运行,保留生成目录窗口
SaveAs的其他参数没试过
目前已知:word转pdf、PPT转pdf
doc_open.SaveAs(pdf_filename, 17)
ppt.SaveAs(output_filename, 32)
- 实际操作问题记录
#doc_open.Close() #关闭打开的文件 连续处理多个文件,此句删掉
word_app.Quit() #必须退出程序