docx2pdf转换出现Com_Error,文件转换后代码中断如何解决?
解决docx2pdf转换时出现Word文件损坏报错的问题
原因排查与解决步骤
1. 检查并修复目标docx文件
- 手动打开路径下的两个docx文件,确认Word是否提示文件损坏。若提示损坏,使用Word自带修复功能:打开Word → 「文件」→「打开」→ 选中损坏文件 → 点击「打开」按钮旁的下拉箭头 → 选择「打开并修复」。
- 删除路径下所有以
~$开头的Word临时文件,这类文件是Word编辑时生成的缓存文件,docx2pdf扫描路径时可能误将其当作正常docx文件处理,导致报错。
2. 清理残留的Word进程
- 打开任务管理器,找到所有
WINWORD.EXE进程并结束。前一次转换可能未正常关闭Word进程,残留的COM对象会干扰本次调用。 - 可在代码中添加进程清理逻辑(执行前请保存所有未关闭的Word文档):
import psutil for proc in psutil.process_iter(['name']): if proc.info['name'] == 'WINWORD.EXE': proc.kill()
3. 精准指定转换文件,避免扫描无关文件
不要直接转换整个目录,改为只转换目标docx文件,排除临时文件和非docx文件:
from docx2pdf import convert import os target_path = "C:/Users/username/word_automation/" # 筛选出目录下的有效docx文件 valid_docx = [f for f in os.listdir(target_path) if f.endswith('.docx') and not f.startswith('~$')] for docx_file in valid_docx: convert(os.path.join(target_path, docx_file))
4. 修复依赖或Office安装
- 卸载重装docx2pdf:
pip uninstall docx2pdf -y pip install docx2pdf - 修复Microsoft Office:打开控制面板→「程序和功能」→ 找到Microsoft Office→右键→「更改」→ 选择「快速修复」(或「在线修复」),修复Office组件可能存在的异常。
内容的提问来源于stack exchange,提问作者enesert
相关产品推荐
相关产品推荐

