Python使用PyPDF2库修改和合并pdf文档
2021-07-28 本文已影响0人
刘小白DOER
pdf使用起来很方便,但是编辑pdf是不容易的。PyPDF2是一个Python开源库,提取文档信息(标题、作者...)、逐页拆分文档、逐页合并文档、裁剪页、将多个页面合并到单个页面中、加密和解密 PDF 文件等。
1、裁剪pdf并进行加密
getPage函数获取pdf页面,addPage添加页面,encrypt函数加密新pdf,write函数将output写入新文件中。

2、重叠添加水印
mergePage方法可以将两个页面合并。output-pdfs_other.pdf是水印文件,output-pdfs.pdf是需要添加水印的文件。for循环迭代文件的页面,然后使用mergePage合并,最后addPage到mergePage-pdfs.pdf。
在调试时,笔者使用上面的裁剪pdf来重叠,一直报错。后来才知道是裁剪pdf是加密了的,卡了好久。

3、合并多个pdf
下面是命令行直接将两个pdf依次合并,是利用PyPDF2.PdfFileMerger类的append方法来合并。

在实际运用中,可能由特殊的需求,下面就是找到目录下的所有pdf文件,使用append方法只提取去除第一页的pdf,最后写入到merge-pdfs.pdf中。在调试时,打开文件的对象需要使用PdfFileReader来实例化才行,比如:merger.append(PyPDF2.PdfFileReader(first_obj)) 。
