在Python中调整PDF页面大小
我正在用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)