在Python中调整pdf页面的大小

时间:2011-06-30 14:42:29

标签: python pdf pypdf

我正在使用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)

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

3 个答案:

答案 0 :(得分:2)

您还可以使用以下函数直接在合并函数调用中应用缩放,旋转或平移:

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

或者在页面对象上使用addTransformation()。

答案 1 :(得分:1)

裁剪后是否要缩放图像?您可以使用p.scale(factor_x, factor_y)来执行此操作。

答案 2 :(得分:1)

这个答案早就应该提交了,也许较早的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)