Python|pdf2docx

使用开源项目 pdf2docx 来将已有的 pdf 文档转换为 docx 格式的文档,方便编辑

环境需求

一、基础运行环境

Python 版本:Python 3.7(本次实践版本,⚠️ 注意:Python3.7为过期维护版本,也是本次部署踩坑的核心诱因)

核心依赖工具:Python 官方包管理工具 pip(Python3.4及以上版本内置,缺失可手动安装)

二、前置知识

✅ 1. pip 是 Python 的官方包管理工具,用于安装/卸载/升级 Python 第三方库,部署 pdf2docx 必须依赖 pip 完成所有依赖包的下载与安装,缺一不可。

✅ 2. 关键环境问题说明(本次实践核心踩坑点)

  1. Python3.7 版本限制:Python3.7 在 2023 年 6 月已彻底停止官方维护,新版的第三方依赖包(如 opencv-python-headless 4.12+)不再对 Python3.7 做兼容适配,会导致安装时触发源码编译,极易报错;
  2. pip 版本问题:Python3.7 初始配套的 pip 版本为 19.2.3(老旧版本),不支持新版依赖包的 pep517 构建规范,会直接抛出 BackendUnavailable 安装失败报错,必须先升级 pip 至最新版;
  3. 环境变量问题:Windows 下安装 Python 时若未勾选「Add Python to PATH」,会导致直接输入 pip 提示「无法识别命令」,解决方案:所有 pip 命令统一用 python -m pip 前缀调用,完美绕开环境变量配置问题,所有命令均有效。

✅ 3. 必备前置依赖说明

pdf2docx 是多依赖的 Python 开源项目,核心依赖以下包,且存在版本兼容要求:

  • opencv-python-headless:PDF 文件解析核心依赖,Python3.7 仅兼容 4.5.5.64 版本;
  • python-docx:Word 文档生成核心依赖,Python3.7 适配 0.8.11 版本;
  • scikit-build/cmake/setuptools/wheel:编译构建依赖,解决源码编译失败、No module named 'skbuild' 报错问题;
  • 其他依赖:numpy/fonttools/fire 等,pip 会自动匹配兼容版本安装。

部署运行

安装

以我本地的 Python 3.7 版本为例,运行命令安装

1
2
3
4
5
6
7
8
9
10
11
# 1. 升级pip到最新版
python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

# 2. 卸载残留的pdf2docx包
python -m pip uninstall -y pdf2docx

# 3. 安装编译依赖
python -m pip install scikit-build cmake setuptools wheel -i https://pypi.tuna.tsinghua.edu.cn/simple

# 4. 指定兼容版本安装
python -m pip install pdf2docx opencv-python-headless==4.5.5.64 python-docx==0.8.11 -i https://pypi.tuna.tsinghua.edu.cn/simple --force-reinstall

指定 opencv-python-headless==4.5.5.64:这是Python3.7 官方兼容的最后一个稳定版本,有编译好的 Windows 现成包(.whl),不用本地编译,不会报任何错;

**指定 python-docx==0.8.11**:适配 Python3.7 的 docx 依赖版本,避免新版不兼容;

**参数 --force-reinstall**:强制重新安装所有依赖,彻底清理之前的残留,保证安装纯净;

验证安装:

1
python -m pip list | findstr pdf2docx

实践运行

参考官方文档,创建一个python脚本:

1
2
3
4
5
6
7
8
9
10
11
12
from pdf2docx import Converter

# 替换成实际的PDF路径和输出Word路径,路径前加 r 可以避免 Windows 路径里的\转义报错
pdf_file = r"你的文件.pdf"
docx_file = r"转换后的文件.docx"

# 执行转换(可以加参数:start=0, end=3 表示只转换前4页)
cv = Converter(pdf_file)
cv.convert(docx_file)
cv.close()

print("✅ PDF转Word成功!文件已保存到指定路径")

总结

我们的上述操作是通过升级 pip + 指定兼容版本 + 模块方式调用来实现了在 Python 3.7 版本下使用 pdf2docx 将 pdf 转换为 doc 文档的需求


Python|pdf2docx
http://example.com/2026/01/13/Python-pdf2docx/
作者
Noctis64
发布于
2026年1月13日
许可协议