Python批量转换Word到PDF,新手直接复制运行【实测可用】
日常工作中经常需要将多个Word文件批量转换为PDF比如归档、汇报、传输手动逐个“另存为”不仅耗时还容易遗漏、出错。今天分享一段实测可用的Python代码基于windows调用Word原生程序转换转换质量拉满完美保留原格式还支持同目录输出、异常捕获、转换统计新手直接复制修改路径就能用核心优势高质量转换调用Word原生程序比第三方库如docx2pdf更稳定完美保留Word格式、排版、图片异常可控捕获文件不存在、转换失败等异常避免程序崩溃同时输出详细报错信息便捷高效同目录输出PDF无需额外指定输出文件夹批量处理数十上百个文件秒完成细节拉满修复Windows控制台编码问题避免中文乱码添加转换统计清晰查看成功/失败数量环境准备新手必看运行代码前需安装依赖库打开CMD/PowerShell输入以下命令一键安装pip install pywin32 pythoncom说明仅支持Windows系统Mac系统可留言获取适配版本Python版本建议3.7及以上。完整可运行代码直接复制修改路径即可import os import win32com.client import pythoncom import sys # 解决Windows控制台中文乱码问题避免输出信息错乱 if sys.platform.startswith(win): sys.stdout.reconfigure(encodingutf-8, errorsreplace) def convert_word_to_pdf(word_path, pdf_path): 核心转换函数调用Word原生程序将单个Word文件转为PDF质量最优 :param word_path: Word文件完整路径.doc/.docx :param pdf_path: 生成的PDF文件完整路径 pythoncom.CoInitialize() # 初始化COM组件解决多线程/跨进程调用问题 word None doc None try: # 启动Word应用程序后台运行不显示界面不干扰操作 word win32com.client.Dispatch(Word.Application) word.Visible False # 隐藏Word窗口 # 检查Word文件是否存在避免报错 if not os.path.exists(word_path): print(f 文件不存在: {word_path}) return # 打开Word文件执行转换FileFormat17 固定对应PDF格式 doc word.Documents.Open(word_path) doc.SaveAs(pdf_path, FileFormat17) print(f 转换成功: {os.path.basename(word_path)}) except Exception as e: # 捕获所有异常输出报错信息方便排查问题 print(f 转换失败: {str(e)}) finally: # 安全关闭文档和Word程序释放资源避免进程残留 if doc: try: doc.Close() except: pass if word: try: word.Quit() except: pass pythoncom.CoUninitialize() # 释放COM组件 # 批量转换函数遍历文件夹下所有Word文件批量转换 def batch_convert(folder_path): # 检查目标文件夹是否存在 if not os.path.exists(folder_path): print(f 文件夹不存在: {folder_path}) return file_count 0 # 统计总Word文件数 success_count 0 # 统计成功转换数 # 遍历文件夹下所有文件筛选出.doc/.docx格式 for file in os.listdir(folder_path): if file.lower().endswith((.docx, .doc)): file_count 1 word_path os.path.join(folder_path, file) # 拼接Word文件完整路径 # 生成PDF文件名与Word同名同目录输出 pdf_name os.path.splitext(file)[0] .pdf pdf_path os.path.join(folder_path, pdf_name) # 输出当前处理进度清晰直观 print(f\n 处理第 {file_count} 个文件: {file}) print(f Word路径: {word_path}) print(f PDF路径: {pdf_path}) # 调用转换函数 convert_word_to_pdf(word_path, pdf_path) success_count 1 # 此处注意若转换失败仍会计数可根据需求调整下文有优化提示 # 转换完成后输出统计信息一目了然 print(f\n 转换完成 ) print(f总文件数: {file_count}) print(f成功转换: {success_count}) print(f转换失败: {file_count - success_count}) # 程序入口修改文件夹路径即可运行 if __name__ __main__: # 请修改为你的Word文件所在文件夹路径绝对路径 # 注意路径中不要包含特殊字符中文路径可正常识别 folder rD:\文件\6 # 检查路径是否为有效文件夹 if not os.path.isdir(folder): print(f 错误: {folder} 不是有效的文件夹) else: # 先列出文件夹内容确认文件是否正确 print(f 文件夹内容:) for item in os.listdir(folder): print(f - {item}) # 执行批量转换 batch_convert(folder)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2420901.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!