from reportlab.pdfgen import canvas # 提供pdf文件
from reportlab.pdfbase import pdfmetrics # 注册字体
from reportlab.pdfbase.ttfonts import TTFont # 提供字体对象
1. 注册字体
pdfmetrics.registerFont(TTFont(‘font1’, ‘files/dd.ttf’))
2. 创建空白pdf
pdf = canvas.Canvas(‘files/空白页.pdf’)
3.渲染文字
1)设置字体
setFont(字体名, 字体大小)
pdf.setFont(‘font1’, 30)
pdf.setFillColorRGB(1, 0, 0, 0.5)
旋转
pdf.rotate(45)
3)渲染文字(写字)
pdf.drawString(30, 20, ‘这是一条水印’)
123,104,238
pdf.setFont(‘font1’, 50)
pdf.setFillColorRGB(123/255, 104/255, 238/255, 0.5)
pdf.rotate(90)
pdf.drawString(300, 200, ‘这是一条水印’)
4.保存文件
pdf.save()
from PyPDF2 import PdfFileReader, PdfFileWriter
1. 准备水印文件和原文件
water_reader = PdfFileReader(open(‘files/空白页.pdf’, ‘rb’))
file_reader = PdfFileReader(open(‘files/存储引擎的讲解.pdf’, ‘rb’))
2. 水印对应的页
water_page = water_reader.getPage(0)
3.准备需要添加水印的页
writer = PdfFileWriter() #建空白pdf保存
reader = PdfFileReader(open(‘files/存储引擎的讲解.pdf’, ‘rb’))
page_num = reader.numPages
for i in range(page_num):
file_reader.getPage(i).mergePage(water_page)
writer.addPage(file_reader.getPage(i))
page1 = file_reader.getPage(0)
4.合并水印页和需要添加水印的页
page1.mergePage(water_page)
5.准备空的pdf用来保存水印页
writer.addPage(page1)
writer.write(open(‘files/new_存储引擎的讲解.pdf’, ‘wb’))