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', '内部资料')
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', '内部资料')

更新时间:2026-09-14 13:36:38
上一篇:Python PDF 转 Word:保留排版批量转换