如果理解了上一小节的RectangleObject坐标图,那么也是很容易理解这一小节的,RectangleObject对象有四个属性表示该页面的四个角的坐标位置,分别是lowerLeft(左下)、lowerRight(右下)、upperRight(右上)、upperLeft(左上),这四个点围成的区域就是最终展示的页面,区域之外的就会被裁减掉,所以我们只要重新改变这四个属性的值就可以达到裁剪的效果了。
现在举一个例子,我们要裁剪页面中间的一个区域,尺寸是400磅×500磅,为了防方便理解,先在坐标图上把裁剪示意图画出来,如图9-3所示。
只要确定了要裁剪的区域的四个角的坐标我们就可以写代码了:
from PyPDF2 import PdfReader,PdfWriter
reader = PdfReader("./pdf_ files/练习文档.pdf")
writer = PdfWriter()
for page in reader.pages:
page.mediabox.lowerLeft = (100,100)
page.mediabox.lowerRight = (500,100)
page.mediabox.upperRight = (500,600)
page.mediabox.upperLeft = (100,600)
writer.addPage(page)
with open("./pdf_ files/test.pdf","wb") as f:
writer.write(f)