1 2 3 |
|
代码中 pdf_reader.getNumPages(): 能够获取读取器的页数,配合 range 就能遍历读取器的所有页。
pdf_writer.addPage(pdf_reader.getPage(page)) 能够将当前页交给写入器。
最后,用 with 新建一个 pdf 并由写入器的 pdf_writer.write(out) 方法输出即可。
04
拆分
如果明白了合并操作中读取器和写入器的配合,那么拆分就很好理解了,这里我们以拆分 INV1.pdf 为2个单独的 pdf 文档为例,同样也先来捋一捋逻辑:
- 读取器读取 PDF 文档
- 读取器一页一页交给写入器
- 写入器每获取一页就立即输出
通过这个代码逻辑我们也可以明白,写入器初始化和输出的位置一定都在读取 PDF 循环每一页的循环体内,而不是在循环体外
代码很简单:
1 2 3 4 5 6 7 8 9 10 11 |
|
05
水印
本次的工作是将下图作为水印添加到 INV1.pdf 中

首先是准备工作,将需要作为水印的图片插入 word 中调整合适位置后保存为PDF文件。然后就可以码代码了,需要额外用到 copy 模块,具体解释见下图:

就是把读取器和写入器初始化,并且把水印 PDF 页先读取好备用,核心代码稍微比较难理解:

加水印本质上就是把水印 PDF 页和需要加水印的每一页都合并一遍
由于需要加水印的 PDF 可能有很多页,而水印 PDF 只有一页,因此如果直接把水印 PDF 拿来合并,可以抽象理解成加完第一页,水印 PDF 页就没有了。
因此不能直接拿来合并,而要把水印 PDF 页不断 copy 出来成新的一页备用 new_page ,再运用 .mergePage 方法完成跟每一页合并,把合并后的页交给写入器待最后统一输出!
关于 .mergePage 的使用:出现在下面的页 .mergePage (出现在上面的页),最后效果如图:
06
加密
加密很简单,只需要记住:「加密是针对写入器加密」
因此只需要在相关操作完成后调用 pdf_writer.encrypt (密码)
以单个 PDF 的加密为例:

写在最后
当然除了对 PDF 的合并、拆分、加密、水印,我们还可以使用 Python 结合 Excel 和 Word 实现更多的自动化需求,这些就留给读者自己开发。Python资源分享君羊1075110200 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
最后还是希望大家能够理解Python办公自动化的一个核心就是批量操作-解放双手,让复杂的工作自动化!
更多相关免费学习推荐:python教程(视频)
以上就是总结用Python 操作 PDF 的几种方法的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python介绍 list.sort方法和内置函数sorted
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。