python3 -m pip install reportlab pikepdf
import csv
with open('经销商信息.csv') as f:
    reader = csv.DictReader(f)
    name_list = [x['经销商名字'] for x in reader]

print(name_list)
import csv
from pathlib import Path
from reportlab.lib import units
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont


with open('经销商信息.csv') as f:
    reader = csv.DictReader(f)
    name_list = [x['经销商名字'] for x in reader]

pdfmetrics.registerFont(TTFont('Songti', 'Songti.ttc')) # 加载中文字体

water_mark_folder = Path('water_pdf') # 用一个文件夹存放所有的水印PDF
water_mark_folder.mkdir(exist_ok=True)

for name in name_list:
    path = str(water_mark_folder / Path(f'{name}.pdf'))
    c = canvas.Canvas(path, pagesize=(200 * units.mm, 200 * units.mm)) # 生成画布,长宽都是200毫米
    c.translate(0.1 * 200 * units.mm, 0.1 * 200 * units.mm)  
    c.rotate(45)  # 把水印文字旋转45°
    c.setFont('Songti', 35)  # 字体大小
    c.setStrokeColorRGB(0, 0, 0)  # 设置字体颜色
    c.setFillColorRGB(0, 0, 0)  # 设置填充颜色
    c.setFillAlpha(0.3)  # 设置透明度,越小越透明
    c.drawString(0, 0, f'{name}专用价目表,严禁泄露!')
    c.save()
import glob
from pathlib import Path
from pikepdf import Pdf, Page, Rectangle


water_pdf_list = glob.glob('water_pdf/*.pdf')
result = Path('result')
result.mkdir(exist_ok=True)

col = 2  # 每页多少列水印
row = 3  # 每页多少行水印

for path in water_pdf_list:
    target = Pdf.open('./PythonisinstanceGolang.pdf')  # 必须每次重新打开PDF,因为添加水印是inplace的操作
    file = Path(path)
    name = file.stem
    water_mark_pdf = Pdf.open(path)
    water_mark = water_mark_pdf.pages[0]

    for page in target.pages:
        for x in range(col):  # 每一行显示多少列水印
            for y in range(row): # 每一页显示多少行PDF
                page.add_overlay(water_mark,
                                 Rectangle(page.trimbox[2] * x / col,
                                           page.trimbox[3] * y / row,
                                           page.trimbox[2] * (x + 1) / col,
                                           page.trimbox[3] * (y + 1) / row))

    result_name = Path('result', f'{name}_添加水印.pdf')
    target.save(str(result_name))

END

未闻 Code·知识星球开放啦!

一对一答疑爬虫相关问题

职业生涯咨询

面试经验分享

每周直播分享

......

未闻 Code·知识星球期待与你相见~

一二线大厂在职员工

十多年码龄的编程老鸟

国内外高校在读学生

中小学刚刚入门的新人

在“未闻 Code技术交流群”等你来!

入群方式:添加微信“mekingname”,备注“粉丝群”(谢绝广告党,非诚勿扰!)