You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Colab使用pdf2docx转Word报rotationMatrix属性错误解决方法

问题背景

在Google Colab平台运行PDF转Word代码时,此前可正常执行的逻辑近期在cv.convert()转换步骤抛出AttributeError,提示'Page' object has no attribute 'rotationMatrix'。
待转换的Apollo 2019.pdf为企业股东大会议案文档,核心包含四项议案:

  • 审议批准2019财年末(2019年3月31日)经审计的公司单独财务报表、合并财务报表及对应的董事会报告、审计师报告
  • 宣告2019财年每股权益派息3.25
  • 审议轮任退任董事Robert Steinmetz(DIN: 00178792)的重新聘任特别决议
  • 审议轮任退任董事Francesco Gori(DIN: 07413105)的重新聘任议案

原实现代码

!pip install python-docx
!pip install pdf2docx

from pdf2docx import Converter
from docx import Document

from google.colab import drive
drive.mount('/content/drive/')

file_name='/content/drive/MyDrive/Colab Notebooks/PDF files/Apollo 2019.pdf'
word_name='Apollo 2019.docx'

cv=Converter(file_name)
cv.convert(word_name)
cv.close()

核心报错信息

# Element is a base class processing coordinates, so set rotation matrix globally
--> 279         Element.set_rotation_matrix(self.fitz_page.rotationMatrix)
280
281         return raw_layout
AttributeError: 'Page' object has no attribute 'rotationMatrix'
故障原因

该报错是依赖版本不匹配导致:pdf2docx底层依赖PyMuPDF(别名fitz)做PDF解析,新版PyMuPDF将Page对象的驼峰命名属性rotationMatrix更改为蛇形命名rotation_matrix,Colab环境近期自动拉取了新版PyMuPDF,但已安装的pdf2docx版本未适配该接口变更,调用旧属性名时触发属性不存在错误。

可行解决方案
  • 固定兼容依赖版本(稳定性最高,无需修改业务逻辑)
    先卸载当前不匹配的依赖,再安装经过验证的版本组合,安装完成后重启Colab运行时即可直接运行原有转换代码:
    !pip uninstall -y pymupdf pdf2docx python-docx
    !pip install python-docx==0.8.11
    !pip install pymupdf==1.19.2
    !pip install pdf2docx==0.5.6
    
  • 热修复适配新版依赖(无需降级依赖)
    如果需要保留新版PyMuPDF的特性,可在初始化转换类前添加属性映射补丁,将旧属性名指向新接口,修改后的完整代码如下:
    !pip install python-docx
    !pip install pdf2docx
    import fitz
    # 补全新旧版本属性映射
    fitz.Page.rotationMatrix = property(lambda self: self.rotation_matrix)
    
    from pdf2docx import Converter
    from docx import Document
    from google.colab import drive
    drive.mount('/content/drive/')
    
    file_name='/content/drive/MyDrive/Colab Notebooks/PDF files/Apollo 2019.pdf'
    word_name='Apollo 2019.docx'
    
    cv=Converter(file_name)
    cv.convert(word_name)
    cv.close()
    
  • 升级pdf2docx到最新适配版本
    直接升级pdf2docx到官方最新版,官方已在新版本中完成PyMuPDF新接口的适配,升级完成后重启运行时即可运行原代码:
    !pip install -U pdf2docx python-docx
    

内容的提问来源于stack exchange,提问作者Ashlesa Goyal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:57:27