在Python中调整PDF页面大小

3 投票
5 回答
24490 浏览
提问于 2025-04-16 20:35

我正在用Python来裁剪PDF页面。
一切都运行得很好,但我想知道怎么改变页面的宽度。

这是我的裁剪代码:

input = PdfFileReader(file('my.pdf', 'rb'))
p = input.getPage(1)
(w, h) = p.mediaBox.upperRight
p.mediaBox.upperRight = (w/4, h)
output.addPage(p)

当我裁剪页面的时候,我还需要调整它们的大小,我该怎么做呢?

5 个回答

2

你还可以在合并页面的时候,直接使用一些函数来进行缩放、旋转或者移动,具体的函数有:

  • mergePage()
  • mergeRotatedPage()
  • mergeRotatedScaledPage()
  • mergeRotatedScaledTranslatedPage()
  • mergeScaledPage()
  • mergeScaledTranslatedPage()
  • mergeTransformedPage()
  • mergeTranslatedPage()

或者,你也可以在页面对象上使用addTransformation()来进行这些操作。

2

你想在裁剪图片后再调整它的大小吗?你可以用 p.scale(factor_x, factor_y) 来实现这个功能。

9

这个回答其实早该出来了,也许早期的PyPDF2版本没有这个功能,但在1.26.0版本中,这个操作其实非常简单。

import PyPDF2

pdf = "YOUR PDF FILE PATH.pdf"

pdf = PyPDF2.PdfFileReader(pdf)
page0 = pdf.getPage(0)
page0.scaleBy(0.5)  # float representing scale factor - this happens in-place
writer = PyPDF2.PdfFileWriter()  # create a writer to save the updated results
writer.addPage(page0)
with open("YOUR OUTPUT PDF FILE PATH.pdf", "wb+") as f:
    writer.write(f)

撰写回答