发布时间:2026/7/14 4:40:17
Python办公自动化:调用Word实现批量DOC转PDF,保留原格式,一键搞定! 前言前面两篇文章我们分别实现了 PDF转图片 和 PPT转PDF今天带来办公自动化三部曲的最后一环——Word批量转PDF。你是否遇到过这些场景收集了十几个同事的Word文档需要统一转成PDF发给客户防止排版错乱论文、标书需要以PDF格式提交但Word版本众多一个个打开另存为太耗时希望保留Word中的书签、目录结构PDF中能自动生成导航。今天我就用 Python 的pywin32调用 Microsoft Word 的 COM 接口来快速实现批量转换不仅保留原始排版连书签都能完美带过来。而且代码完全动态路径放在任何文件夹都能直接运行。目录一、安装依赖库1.1 实现原理二、 代码逐段精讲2.1 动态路径——用完即走无需配置2.2 核心转换函数 ExportAsFixedFormat2.3跳过已存在的 PDF三、避坑指南 总结一、安装依赖库左下角打开Python终端使用阿里云镜像快速安装pip install pywin32 -i https://mirrors.aliyun.com/pypi/simple/pywin32是 Python 调用 Windows API 和 COM 组件的桥梁我们通过它来控制 Word 应用程序。1.1 实现原理# -*- coding: utf-8 -*- Python批量将Word文件DOC/DOCX转为PDF文件 功能自动识别当前目录下所有Word文档调用本地Word转为PDF #pip install pywin32 -i https://mirrors.aliyun.com/pypi/simple/ 安装包 import os #导入内置系统的模块用来遍历文件架里的所有文件。 from win32com.client import Dispatch, constants, gencache #导入第三方软件库的工具 def doc2pdf(word_file, pdf_file): 单个Word转PDF word_file: Word文件完整路径 pdf_file: 输出PDF完整路径 word gencache.EnsureDispatch(Word.Application) doc word.Documents.Open(word_file, ReadOnly1) # 导出为PDF关键参数 doc.ExportAsFixedFormat(pdf_file, constants.wdExportFormatPDF, Itemconstants.wdExportDocumentWithMarkup, CreateBookmarksconstants.wdExportCreateHeadingBookmarks) word.Quit(constants.wdDoNotSaveChanges) print(f✅ 转换成功{os.path.basename(word_file)} → {os.path.basename(pdf_file)}) def convert_word_in_folder(input_dir, output_dir): 批量转换文件夹内所有Word文档 input_dir: 包含Word文件的目录 output_dir: PDF输出目录 if not os.path.exists(input_dir): print(f❌ 输入目录不存在{input_dir}) return files os.listdir(input_dir) # 不区分大小写过滤 .doc 和 .docx word_files [f for f in files if f.lower().endswith((.doc, .docx))] if not word_files: print(❌ 未找到任何Word文档.doc 或 .docx) return os.makedirs(output_dir, exist_okTrue) print(f 找到 {len(word_files)} 个Word文件开始转换...) for word_file in word_files: full_input os.path.join(input_dir, word_file) base_name os.path.splitext(word_file)[0] .pdf full_output os.path.join(output_dir, base_name) # 跳过已存在的PDF避免重复转换 if os.path.exists(full_output): print(f⏭️ 已跳过文件已存在{base_name}) continue try: doc2pdf(full_input, full_output) except Exception as e: print(f❌ 转换 {word_file} 时出错{e}) print( 所有Word文档转换完成) if __name__ __main__: # ---------- 全部使用动态路径 ---------- script_dir os.path.dirname(os.path.abspath(__file__)) # 输入目录默认使用脚本所在目录把你的Word文档放这里 docpath script_dir # 输出目录在脚本所在目录下新建 pdf_output 文件夹 pdfpath os.path.join(script_dir, pdf_output) convert_word_in_folder(docpath, pdfpath)二、 代码逐段精讲2.1 动态路径——用完即走无需配置script_dir os.path.dirname(os.path.abspath(__file__)) docpath script_dir pdfpath os.path.join(script_dir, pdf_output)还是老规矩脚本在哪它就在哪工作。输出的 PDF 统一放在pdf_output子文件夹干净整洁。2.2 核心转换函数ExportAsFixedFormatdoc.ExportAsFixedFormat(pdf_file, constants.wdExportFormatPDF, Itemconstants.wdExportDocumentWithMarkup, CreateBookmarksconstants.wdExportCreateHeadingBookmarks)这是 Word 自带的导出方法参数含义wdExportFormatPDF输出 PDF 格式值17ItemwdExportDocumentWithMarkup导出包含批注的文档可改为wdExportDocumentContent只导正文CreateBookmarkswdExportCreateHeadingBookmarks为标题自动生成书签PDF 左侧导航栏你甚至可以改为constants.wdExportFormatXPS输出 XPS 格式灵活多变。2.3跳过已存在的 PDFif os.path.exists(full_output): print(f⏭️ 已跳过文件已存在{base_name}) continue如果中途运行中断再次执行时不会重复转换省时省力。三、避坑指南ImportError: No module named win32com.client原因pywin32未安装或安装不完整。解决方案重新安装pip install --upgrade pywin32 -i https://mirrors.aliyun.com/pypi/simple/然后重启 Python 环境。 总结通过不到 60 行 Python 代码我们利用系统自带的 Microsoft Word 实现了 Word 批量转 PDF。它✅ 完美保留原文档格式字体、段落、表格、图片✅ 自动生成书签方便 PDF 导航✅ 动态路径随放随用✅ 支持.doc和.docx双格式至此我们完成了办公自动化文档转换三部曲PDF → 图片PyMuPDFPPT → PDFcomtypesWord → PDFpywin32三篇文章相辅相成覆盖了日常办公最常用的文档格式转换需求。赶紧收藏备用吧如果运行中遇到任何问题特别是环境配置相关的报错欢迎在评论区留言我会第一时间解答。如果觉得有帮助请点赞、收藏、转发三连支持一下~

相关新闻

2026/7/14 4:40:17

C++闰年判断:从算法实现到代码健壮性的编程实践

1. 项目概述:从“闰年判断”窥探C编程的基石在C编程的入门路上,你总会遇到一些看似简单,实则暗藏玄机的经典练习题。“闰年判断”就是其中之一。别小看这几行代码,它几乎成了检验一个初学者是否真正理解程序控制流、逻辑运算和整数…

2026/7/14 4:40:17

L9958与MKV42F256VLH16电机控制方案解析

1. 为什么选择L9958与MKV42F256VLH16组合?在电机控制领域,芯片选型直接决定了系统性能上限。L9958是ST意法半导体推出的汽车级H桥驱动器,具备15A持续电流输出能力,集成电荷泵和同步整流功能。而MKV42F256VLH16作为NXP专为电机控制…

2026/7/14 4:40:17

AtCoder Beginner Contest 466(ABCDEF)

前言 回归了&#xff01;这个暑假真要猛猛训练了&#xff01; 一、A - Compromise #include <bits/stdc.h> using namespace std;/* /\_/\* ( ._.)* / > \>*//**想好再写*注意审题 注意特判*不要红温 不要急躁 耐心一点*WA了不要立马觉得是思路不对 先耐…

2026/7/14 6:55:24

通用Agent核心技术解析与应用实践

1. 通用Agent的本质解析通用Agent&#xff08;General-Purpose Agent&#xff09;是当前AI领域最受关注的前沿方向之一。简单来说&#xff0c;这是一种能够理解复杂指令、自主规划任务流程、调用工具执行操作&#xff0c;并持续从交互中学习的智能系统。不同于传统单一功能的AI…

2026/7/14 6:55:24

MA12070+STM32F031C6数字音频系统设计与优化

1. 为什么选择MA12070STM32F031C6组合在DIY音频系统领域&#xff0c;MA12070数字功放芯片与STM32F031C6微控制器的组合近年来备受推崇。这种架构的核心优势在于实现了全数字化信号链路——从音源处理到功率放大全程保持数字信号&#xff0c;避免了传统模拟放大电路中的信号衰减…

2026/7/14 6:55:24

LISA:解锁大语言模型的视觉推理与分割新范式

1. 什么是LISA&#xff1a;当大语言模型学会"看图说话"想象一下&#xff0c;你指着早餐桌上的水果盘问AI&#xff1a;"哪个水果维生素C含量最高&#xff1f;"传统AI可能需要你先明确指令"分割出橙子"&#xff0c;而LISA能像人类一样&#xff0c;…

2026/7/14 6:50:23

linux xarray 原理

Linux XArray&#xff08;eXtensible Array&#xff09; 是内核 4.20 引入的可扩展稀疏数组&#xff0c;对外像 “巨大指针数组”&#xff0c;内部是优化的多级 Radix 树&#xff0c;主打高效稀疏索引、无锁读、自动缩扩、缓存友好;XArray 诞生背景&#xff1a;替代 Radix-Tree…

2026/7/13 6:38:38

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由&#xff1a;ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/13 14:26:14

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统&#xff1a;3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展&#xff0c;充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本&#xff0c;对充电机与电动汽车之间的通信提出了更严格…

2026/7/13 18:07:53

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动&#xff1a;从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗&#xff1f;&#x1f…

2026/7/14 0:04:21

5分钟掌握足球PBR材质制作:Photoshop与Unity高效工作流

1. 项目概述&#xff1a;为什么是足球PBR材质&#xff1f;在游戏开发&#xff0c;尤其是体育竞技类游戏的制作中&#xff0c;一个看起来“对味”的足球&#xff0c;往往比我们想象中更重要。它不仅是赛场上的核心道具&#xff0c;更是玩家视觉焦点和沉浸感的重要来源。一个塑料…

2026/7/14 0:04:21

ChatGPT联网搜索失败,92%开发者误判为网络问题——真实根因竟是LLM推理会话上下文污染导致Search Agent进程静默退出(含strace复现脚本)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT 联网搜索失败 当 ChatGPT 的联网搜索功能无法正常工作时&#xff0c;用户常遇到“搜索不可用”“未连接到互联网”或空白响应等现象。该问题并非模型本身缺陷&#xff0c;而是由权限配置、网络…

2026/7/13 11:33:05

3个高效策略:快速掌握Axure中文界面配置

3个高效策略&#xff1a;快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…