如何使用 PyPDF2 旋转页面?
How can I rotate a page with PyPDF2?
我正在使用 pyPDF2 编辑 PDF 文件。我设法生成了我想要的 PDF,但我还没有旋转一些页面。
我去 the documentation 找到了两种方法:rotateClockwise
和 rotateCounterClockwise
,虽然他们说参数是 int,我不能让它工作。 Python 说:
TypeError: unsupported operand type(s) for +: 'IndirectObject' and 'int'
产生这个错误:
from PyPDF2 import PdfFileReader, PdfFileWriter
reader = PdfFileReader("example.pdf")
with open("out.pdf", "wb") as fh:
writer = PdfFileWriter(fh)
page = reader.getPage(0)
page.rotateCounterClockwise(90)
writer.addPage(page)
我找不到人解释这个过程。然而,Whosebug 中有一个 question,但答案很模糊。
尝试用以下内容替换您的三行代码:
output.addPage(input1.getPage(i).rotateCounterClockwise(90))
我认为旋转必须对 getPage 调用进行,而不是在 "extracted" 页面上进行。
This was a known bug with the rotateClockwise
function. This was fixed.
对于旧版本的 PyPDF2:只需使用此修复程序编辑 pdf.py
中的“_rotate”方法
def _rotate(self, angle):
rotateObj = self.get("/Rotate", 0)
currentAngle = rotateObj if isinstance(rotateObj, int) else rotateObj.getObject()
self[NameObject("/Rotate")] = NumberObject(currentAngle + angle)
我正在使用 pyPDF2 编辑 PDF 文件。我设法生成了我想要的 PDF,但我还没有旋转一些页面。
我去 the documentation 找到了两种方法:rotateClockwise
和 rotateCounterClockwise
,虽然他们说参数是 int,我不能让它工作。 Python 说:
TypeError: unsupported operand type(s) for +: 'IndirectObject' and 'int'
产生这个错误:
from PyPDF2 import PdfFileReader, PdfFileWriter
reader = PdfFileReader("example.pdf")
with open("out.pdf", "wb") as fh:
writer = PdfFileWriter(fh)
page = reader.getPage(0)
page.rotateCounterClockwise(90)
writer.addPage(page)
我找不到人解释这个过程。然而,Whosebug 中有一个 question,但答案很模糊。
尝试用以下内容替换您的三行代码:
output.addPage(input1.getPage(i).rotateCounterClockwise(90))
我认为旋转必须对 getPage 调用进行,而不是在 "extracted" 页面上进行。
This was a known bug with the rotateClockwise
function. This was fixed.
对于旧版本的 PyPDF2:只需使用此修复程序编辑 pdf.py
中的“_rotate”方法
def _rotate(self, angle):
rotateObj = self.get("/Rotate", 0)
currentAngle = rotateObj if isinstance(rotateObj, int) else rotateObj.getObject()
self[NameObject("/Rotate")] = NumberObject(currentAngle + angle)