首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
操作PDF介绍
打开与保存PDF文档
读取文档与文档尺寸
读取页面和保存页面
合并文档
修改PDF
旋转页面
缩放页面
裁剪页面
提取文本
提取图片
添加水印
查看元数据
更新元数据
加密文档
解密文档
Word转PDF
Excel转PDF
PPT转PDF
PDF转Word
当前位置:
首页>>
技术小册>>
Python与办公-玩转PDF
小册名称:Python与办公-玩转PDF
上面的操作就是从一个文档读取某些页面,然后将这些页面保存为一个新的文档,这种做法完全可以满足合并或者分割文档的需求。要合并或者分割哪些页面,就读取哪些页面,逻辑清晰操作简单,读者可以自己试一下。 如果要按照顺序合并几个PDF文档的全部页面而不是部分页面,这里再补充一个合并PDF文档的方式,那就是使用pypdf2提供的PdfMerger对象,它有一个append()方法,参数是要合并的PDF的路径,然后该对象还提供了一个write()方法用于保存合并后的文档,代码如下: ```bash from PyPDF2 import PdfMerger merger = PdfMerger() merger.append("./pdf_ files/测试文档1.pdf") merger.append("./pdf_ files/测试文档2.pdf") merger.append("./pdf_ files/测试文档3.pdf") merger.write("./pdf_ files/合并文档.pdf") merger.close() ``` 上面的代码会把“测试文档1.pdf”“测试文档2.pdf”和“测试文档3.pdf”这三个文档合并为一个“合并文档.pdf”。要合并多少个文档就调用多少次append()方法,过程中不需要手动创建PdfWriter对象,也不需要分别读取和遍历每个文档,代码会变得非常简洁明了。最后别忘了手动调用PdfMerger对象的close()方法释放内存。 学习了上面的合并操作之后,别以为PdfMerger就真的这么不灵活,如果非要使用PdfMerger合并某些指定的页面,也是可以实现的。PdfMerger对象的append()方法用于合并整个PDF文档,而它的merge()方法用于指定合并哪个文档的哪个页面,并且可以指定插入位置。 merge()方法有好几个参数:position表示要插入的位置(下标从0开始);fileobj表示要合并哪个文档,我们给它传入一个文件操作符即可;pages表示要合并哪些页面,我们给它传入一个表示页面索引的元组即可,代码演示如下: ```bash from PyPDF2 import PdfMerger merger = PdfMerger() pdf2 = open("./pdf_ files/测试文档2.pdf","rb") pdf3 = open("./pdf_ files/测试文档3.pdf","rb") merger.append("./pdf_ files/测试文档1.pdf") merger.merge(position=0,fileobj=pdf2,pages=(0,3)) merger.merge(position=1,fileobj=pdf3,pages=(1,2)) merger.write("./pdf_ files/合并文档.pdf") merger.close() ``` 上面的代码中,首先实例化一个PdfMerger对象表示一个新的合并文档,然后使用PdfMerger对象的append()方法把“测试文档1.pdf”整个文档添加到PdfMerger对象。 接下来再把“测试文档2.pdf”的第0页、第1页、第2页插入到合并文档的第0个位置,也就是合并文档的首页,最后再把“测试文档3.pdf”的第1页插入到合并文档的第1个位置,即插入到“测试文档2.pdf”的第0页和第1页之间。 所以最后的顺序是,第二个文档的第0页->第三个文档的第1页->第二个文档的第1页->第二个文档的第2页->第一个文档的全部页。最终效果如图9-1所示。 ![](/uploads/images/20231206/47bdea45b495076af2d134d59958f6d5.png)
上一篇:
读取页面和保存页面
下一篇:
修改PDF
该分类下的相关小册推荐:
Python高性能编程与实战
Python机器学习实战
Python合辑11-闭包函数
Python合辑7-集合、列表与元组
Python合辑10-函数
剑指Python(磨刀不误砍柴工)
Python3网络爬虫开发实战(下)
Python合辑9-判断和循环
Python合辑2-字符串常用方法
Python神经网络入门与实践
Python3网络爬虫开发实战(上)
Python甚础Django与爬虫