如何用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
相关产品推荐
相关产品推荐

