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

如何使用iTextSharp在PDF现有内容上层添加水印解决遮挡问题

问题根因

你遇到的水印被矩形遮盖的核心原因是PdfStamper默认未开启追加模式,新写入的内容会被插入到页面原有内容(包括你之前添加的遮盖矩形)的下层,导致新增水印被遮挡。

修复代码

仅需修改PdfStamper的初始化参数,开启追加模式即可,修改后代码如下:

//Add watermark
using (PdfReader pdfReader = new PdfReader(pdfFile))
{
    // 第四个参数设为true开启追加模式,新内容会写在所有现有内容的最上层
    using (PdfStamper stamper = new PdfStamper(pdfReader, new FileStream(outpdfFile, FileMode.Create), '\0', true))
    {
        PdfContentByte over = stamper.GetOverContent(1);

        iTextSharp.text.Font font = new iTextSharp.text.Font();
        font.Size = 20;
        ColumnText.ShowTextAligned(over, Element.ALIGN_CENTER, new Phrase("This is water mark over existing content", font), 200, 500, 0);
    }
}

参数说明

  • PdfStamper构造函数的第四个参数为appendMode,设为true时,所有新添加的内容会直接追加到PDF页面已有内容的最顶部,不会插入到原有内容层级之间。
  • 原有逻辑不需要其他调整,开启追加模式后新增的水印就会显示在你之前添加的遮盖矩形上层。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:45:04