You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将PDF格式水印定位添加到PDF每页右上角

PDF格式水印定点添加方案

你之前实现PNG水印的合并逻辑完全可复用,不需要额外依赖复杂库,只要把「生成临时PDF绘制图片」的步骤替换成「读取现有PDF水印+坐标变换」即可,核心是要调整水印页的坐标偏移,解决默认merge时左下角对齐导致位置不对的问题。

可直接运行的代码

from PyPDF2 import PdfWriter, PdfReader
import webbrowser

# ============================ 配置项 ============================
inputPath = 'input.pdf'               # 待加水印的原PDF路径
outputPath = 'output.pdf'             # 输出文件路径
watermarkPath = 'watermark.pdf'       # PDF格式水印文件路径
x_offset = 515                        # 水印横向偏移(相对于原页左下角)
y_offset = 762                        # 水印纵向偏移(相对于原页左下角)
watermark_scale = 1                   # 水印缩放比例,1为原始尺寸
watermark_on_top = True               # 水印是否盖在原页面内容上层
# ====================================================================

# 读取水印文件,取第一页作为通用水印模板
watermark_reader = PdfReader(open(watermarkPath, "rb"))
watermark_page = watermark_reader.pages[0]

# 调整水印大小和位置
watermark_page.scale(watermark_scale, watermark_scale)
watermark_page.mediabox.upper_right = (
    watermark_page.mediabox.upper_right[0] + x_offset,
    watermark_page.mediabox.upper_right[1] + y_offset
)
watermark_page.mediabox.lower_left = (
    watermark_page.mediabox.lower_left[0] + x_offset,
    watermark_page.mediabox.lower_left[1] + y_offset
)

# 逐页合并水印
output_writer = PdfWriter()
input_reader = PdfReader(open(inputPath, "rb"))
for page in input_reader.pages:
    page.merge_page(watermark_page, over=watermark_on_top)
    output_writer.add_page(page)

# 写出结果
with open(outputPath, "wb") as out_file:
    output_writer.write(out_file)

# 默认程序打开生成的PDF
webbrowser.open(outputPath)

调参说明

  • 依赖库如果运行报错先升级:执行pip install --upgrade pypdf,新版pypdf完全兼容旧版PyPDF2的导入语法,修复了旧版坐标合并的偏移bug
  • 坐标计算参考:标准A4页面尺寸为宽595磅、高842磅,如果要放70磅大小的水印、右上角留10磅页边距,x_offset设为595 - 水印宽度 - 边距、y_offset设为842 - 水印高度 - 边距,反复微调两个数值就能对准到目标位置
  • 水印本身的透明度、颜色等属性直接在制作PDF水印文件时设置即可,合并过程会完整保留这些属性,不需要额外代码处理
  • 如果水印是多页PDF,只要在循环里按页码取对应水印页合并即可,单页水印可直接复用到所有原文档页面

内容的提问来源于stack exchange,提问作者sueszli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:30:48