实用办公技巧贴——当Python遇上PDF
PortableDocumentFormat(可移植文档格式) , 即PDF是一种文件格式 , 可以用于跨操作系统的呈现和文档交换 。 尽管PDF最初是由Adobe发明的 , 但它现在是由国际标准化组织(ISO)维护的开放标准 。 完全可以通过使用PyPDF2包在Python中处理已先存在的PDF哦!

文章图片
PyPDF2是一个纯Python包 , 可用于许多不同类型的PDF操作 。
从Python中提取PDF文档信息
可以使用PyPDF2从PDF中提取元数据和一些文本 , 尤其是当在预先存在的PDF文件上执行某些类型的自动化时是非常有用的 。
以下是当前可以提取的数据类型:
Author
Creator
Producer
Subject
Title
Numberofpage
基本操作
PyPDF2导入模块的代码常常是:

文章图片
这里导入了两个方法:
PdfFileReader可以理解为读取器
PdfFileWriter可以理解为写入器
接下来通过几个案例进一步认识这两个工具的奇妙之处 , 用到的示例文件是5个发票的pdf

文章图片
每个发票的PDF都由两页组成:

文章图片
合并
第一个工作是将5个发票pdf合并成10页 。 这里读取器和写入器应该怎么配合呢?
逻辑如下:
读取器将所有pdf读取一遍
读取器将读取的内容交给写入器
写入器统一输出到一个新pdf
这里还有一个重要的知识点:读取器只能将读取的内容一页一页交给写入器 。 因此 , 逻辑中第1步和第2步实际上不是彼此独立的步骤 , 而是读取器读取完一个pdf后 , 就将这个pdf全部页循环一遍 , 挨页交给写入器 。 最后等读取工作全部结束后再输出 。
水印
本次的工作是将下图作为水印添加到INV1.pdf中 。

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

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

文章图片
加水印本质上就是把水印PDF页和需要加水印的每一页都合并一遍 。 由于需要加水印的PDF可能有很多页 , 而水印PDF只有一页 , 因此如果直接把水印PDF拿来合并 , 可以抽象理解成加完第一页 , 水印PDF页就没有了 。
因此不能直接拿来合并 , 而要把水印PDF页不断copy出来成新的一页备用new_page , 再运用.mergePage方法完成跟每一页合并 , 把合并后的页交给写入器待最后统一输出!
关于.mergePage的使用:出现在下面的页.mergePage(出现在上面的页) , 最后效果如图:

文章图片
加密
加密很简单 , 只需要记住:「加密是针对写入器加密」因此只需要在相关操作完成后调用pdf_writer.encrypt(密码) , 以单个PDF的加密为例:

文章图片
当然 , Python的能力绝不止于对PDF的合并、拆分、加密、水印 , 使用Python结合Excel和Word实现更多的自动化需求都可以实现 , 更多精彩有待探索 。
【实用办公技巧贴——当Python遇上PDF】文章部分素材来源:AI科技大本营
推荐阅读
- 教你做虎皮蛋糕上的虎皮,掌握2个技巧,保证起虎皮,做法很简单
- 酸辣土豆丝很多人第一步就错了,大厨教你技巧,香辣爽脆不粘锅
- 酒楼旺销融合菜,简单实用!
- 记住这几个小技巧,做出来的牛肉面才不会失败
- 蒸包子的技巧都在这里了,这样蒸出的包子才香气扑鼻,松软可口
- 蒸鱼时,直接下锅蒸就废了,牢记四个技巧,蒸出的鱼鲜味十足
- 豆芽炒粉条,地道家常菜,教你一个小技巧,豆芽入味,越嚼越香
- 偷偷告诉你炸麻团的技巧,个个空心又香又脆,出锅全家抢着吃
- 自制馄饨时,掌握1点小技巧,馄饨皮薄馅大,馅香皮软还爽滑
- 不仅食材要好,还要讲究黄油打发的技巧,才可以做出好吃的曲奇来!
