第二十一天 作业

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’))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值