需求:给多个PDF文件批量添加公司的logo,如果PDF文件有多页,只需要在首页左上角添加公司logo。
实现思路:用到了PyPDF2的库,将logo按照所需的位置制作成PDF文件logo.pdf,然后通过PyPDF2提供的mergePage将logo.pdf和需要添加logo的PDF文件首页叠加。如果在左上角添加logo,那么在logo.pdf中左上角相应位置摆放公司的logo,其余地方都是空白。
使用方法:工作目录下创建orginal、output文件夹和logo.pdf,original文件夹放原始的PDF文件,添加完logo的结果文件以原文件名保存到output文件夹。
注意:logo.pdf和pdf文件的页面尺寸最好保持一致,否则可能出现叠加失败的结果。本例中PDF文件是系统生成的,所以页面尺寸是固定的。如果需要给不同尺寸的PDF添加logo,可能需要采取别的方法。
import glob, os
from pathlib import Path
import PyPDF2 as pypdf
#change working directory
os.chdir('C:\\Users\\XXX\\Desktop\\logo')
pdf_list = glob.glob('original/*.pdf')
for path in pdf_list:
original = pypdf.PdfFileReader(path)
firstPage = original.getPage(0)
logo = pypdf.PdfFileReader("logo.pdf").getPage(0)
# add logo to the first page
firstPage.mergePage(logo)