我的知识记录

Python 给 PDF 加水印:批量加文字水印

from pypdf import PdfReader, PdfWriter
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
import io

def add_pdf_watermark(src, dst, text='机密'):
    packet = io.BytesIO()
    c = canvas.Canvas(packet, pagesize=A4)
    c.setFont('Helvetica', 60)
    c.setFillColorRGB(0.7, 0.7, 0.7, alpha=0.3)
    c.rotate(45)
    c.drawString(200, 100, text)
    c.save()
    packet.seek(0)

    watermark = PdfReader(packet)
    reader = PdfReader(src)
    writer = PdfWriter()
    for page in reader.pages:
        page.merge_page(watermark.pages[0])
        writer.add_page(page)
    with open(dst, 'wb') as f:
        writer.write(f)
    print(f"已加印:{dst}")

add_pdf_watermark('input.pdf', 'output.pdf', '内部资料')

Python 给 PDF 加水印:批量加文字水印

标签:

更新时间:2026-09-14 13:36:38

上一篇:Python PDF 转 Word:保留排版批量转换

下一篇:Python 图片文字识别 OCR:批量提取图片里的文字