首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
操作PDF介绍
打开与保存PDF文档
读取文档与文档尺寸
读取页面和保存页面
合并文档
修改PDF
旋转页面
缩放页面
裁剪页面
提取文本
提取图片
添加水印
查看元数据
更新元数据
加密文档
解密文档
Word转PDF
Excel转PDF
PPT转PDF
PDF转Word
当前位置:
首页>>
技术小册>>
Python与办公-玩转PDF
小册名称:Python与办公-玩转PDF
每一个PDF页面都有自己的尺寸,在pypdf2中,PageObject对象的mediabox属性存储的是就是该页面的尺寸信息,对应的是一个RectangleObject对象。RectangleObject对象的left、bottom、right、top四个属性分别代表左、下、右、上四边的距离,我们可以把一个PDF页面的左下角当成是坐标原点,而RectangleObject的四个属性分别是四条边到达坐标轴的距离。 我还是举一个例子看一下吧: ```bash from PyPDF2 import PdfReader reader = PdfReader("./pdf_ files/练习文档.pdf") page = reader.getPage(0) print(page.mediabox) # 输出:RectangleObject([0,0,612,792]) print(page.mediabox.left) # 输出:0 print(page.mediabox.bottom) # 输出:0 print(page.mediabox.right) # 输出:612 print(page.mediabox.top) # 输出:792 ``` 代码中读取了“练习文档.pdf”的第一页的mediabox属性,该文档是信纸的尺寸,约等于612磅×792磅,我们把它放到坐标图里看一下,如图9-2所示。 ![](/uploads/images/20231206/b47abf662849357b1e2d8c7c7db9286e.png) 现在通过坐标图我们可以更容易理解RectangleObject左、下、右、上四个属性所表示的含义了,所以修改这几个属性实际上就是修改页面的尺寸。 比如说我们要把信纸的尺寸修改为A4纸的尺寸,只要把PageObject对象的mediabox 重新赋值为一个指定四边距离的RectangleObject对象即可,注意这四边距离是一个元组,代码如下: ```bash from PyPDF2 import PdfReader,PdfWriter from PyPDF2.generic import RectangleObject reader = PdfReader("./pdf_ files/练习文档.pdf") writer = PdfWriter() for page in reader.pages: page.mediabox = RectangleObject((0,0,595.28,841.89)) writer.addPage(page) with open("./pdf_ files/test.pdf","wb") as f: writer.write(f) ``` 如果不想自己实例化RectangleObject对象也是可以的,PageObject对象有提供一些缩放方法,比如说scaleTo()方法可以直接指定宽高,代码如下: ```bash from PyPDF2 import PdfReader,PdfWriter reader = PdfReader("./pdf_ files/练习文档.pdf") writer = PdfWriter() for page in reader.pages: page.scaleTo(595.28,841.89) writer.addPage(page) with open("./pdf_ files/test.pdf","wb") as f: writer.write(f) ``` PageObject对象的scaleBy()方法可以按某个比例因子对页面进行等比缩放,比例因子就是指缩放的倍数,比如说把所有页面的宽高都缩小为原来的50%,代码如下: ```bash from PyPDF2 import PdfReader,PdfWriter reader = PdfReader("./pdf_ files/练习文档.pdf") writer = PdfWriter() for page in reader.pages: page.scaleBy(0.5) writer.addPage(page) with open("./pdf_ files/test.pdf","wb") as f: writer.write(f) ```
上一篇:
旋转页面
下一篇:
裁剪页面
该分类下的相关小册推荐:
Python机器学习基础教程(上)
Python3网络爬虫开发实战(上)
Python面试指南
Python爬虫入门与实战开发(上)
Python编程轻松进阶(一)
Python合辑4-130个字符串操作示例
Python神经网络入门与实践
Python与办公-玩转PPT
Python与办公-玩转Word
实战Python网络爬虫
Python高并发编程与实战
Python自动化办公实战