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

如何用Python修改PDF页面/Rotate元数据为0且不实际旋转页面

如何修改PDF页面的/Rotate元数据为0(不实际旋转页面)

完全可以实现,直接修改PDF页面的/Rotate元数据属性即可,不需要实际旋转页面内容。下面给你几个可行的方案,包括你试过的PyPDF2的正确用法,以及另外两个常用库的实现:

1. 使用PyPDF2

你之前可能没找对正确的修改姿势,直接遍历页面修改/Rotate属性就行,不会触发页面内容旋转:

from PyPDF2 import PdfReader, PdfWriter

reader = PdfReader("input.pdf")
writer = PdfWriter()

for page in reader.pages:
    # 直接修改/Rotate元数据为0
    page["/Rotate"] = 0
    writer.add_page(page)

with open("output.pdf", "wb") as out_file:
    writer.write(out_file)

2. 使用PyMuPDF(fitz)

PyMuPDF是处理PDF的轻量高效库,修改元数据的代码更简洁:

import fitz

doc = fitz.open("input.pdf")
for page in doc:
    # 直接设置页面旋转元数据为0
    page.set_rotation(0)
doc.save("output.pdf", garbage=4, deflate=True)
doc.close()

这里set_rotation(0)只会修改/Rotate属性,不会对页面内容做旋转操作,完全符合你的需求。

3. 使用pdfrw

pdfrw是专门用于读写PDF的库,修改元数据也很直接:

from pdfrw import PdfReader, PdfWriter

reader = PdfReader("input.pdf")
writer = PdfWriter()

for page in reader.pages:
    # 修改页面的Rotate值为0
    page.Rotate = 0
    writer.addpage(page)

writer.write("output.pdf")

以上三种方法都只会修改PDF的/Rotate元数据,不会改变页面内容的实际旋转状态,解决你添加水印时位置错误的问题。

内容的提问来源于stack exchange,提问作者arpan khetani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:29:51