如何在C#中将印戳和水印添加到PDF

Stamp Text & Image on PDFs using C# and IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF使用 C# 中的 HTMLStamperBarcodeStamper 类,通过精确的定位控制,将文本、图像、HTML 内容和条形码添加到现有的 PDF 文档中。

在现有 PDF 文档上覆盖附加内容。 印章可为 PDF 添加信息、标签、水印或注释。 利用 IronPDF 的全面印章功能,将印章用于添加页眉和页脚或创建自定义水印。

IronPDF提供四个印章:HTMLStamperBarcodeStamperHTMLStamper 利用所有 HTML 功能和 CSS 样式,类似于将 HTML 字符串转换为 PDF

快速入门:立即在 PDF 上添加文字

使用 IronPDF 的 TextStamper 类向 PDF 文档添加文本注释、水印或标签。 下面的示例演示了如何使用 ApplyStamp 方法在 PDF 上添加文本。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    var pdf = new IronPdf.PdfDocument("input.pdf");
    var stamper = new IronPdf.Editing.TextStamper()
    {
        Text = "Confidential",
        FontSize = 50,
        Opacity = 50,
        VerticalAlignment = IronPdf.Editing.VerticalAlignment.Middle,
        HorizontalAlignment = IronPdf.Editing.HorizontalAlignment.Center
    };
    pdf.ApplyStamp(stamper);
    pdf.SaveAs("stamped.pdf");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer


如何在 PDF 上加印文本?

创建一个包含所有显示配置的 TextStamper 对象。 将 TextStamper 对象传递给 ApplyStamp 方法。 Text 属性设置显示的文本。 配置字体系列、字体样式和印章位置。

TextStamper 提供类似于在 PDF 文档中管理字体的广泛自定义选项。 将 UseGoogleFont 设置为 true,即可使用系统字体或 Google 字体。

:path=/static-assets/pdf/content-code-examples/how-to/stamp-text-image-stamp-text.cs
using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);

pdf.SaveAs("stampText.pdf");
$vbLabelText   $csharpLabel

输出的 PDF 是什么样子?

如何创建多行文本印章?

TextStamper 中使用 <br> 标签表示多行文本。 例如,"行 1
行 2 "在第一行产生 "行 1",在第二行产生 "行 2"。这样就可以创建地址戳或多行水印。


如何在 PDF 上加盖图像?

创建一个 ImageStamper 对象,并使用 ApplyStamp 方法将图像应用于文档。 该方法的第二个参数接受一个页面索引,用于标记单个或多个页面。 以下示例为 PDF 第 1 页的图片加盖了印章。

提示所有页面索引均采用从零开始的索引方式。

对于复杂的图像操作,请探索 将图像添加到 PDF 或使用 base64 编码图像

:path=/static-assets/pdf/content-code-examples/how-to/stamp-text-image-stamp-image.cs
using IronPdf;
using IronPdf.Editing;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);

pdf.SaveAs("stampImage.pdf");
$vbLabelText   $csharpLabel

图章输出是什么样的?

支持哪些图像格式?

ImageStamper 支持通过 URI 引用或文件路径来传输 PNG、JPEG、GIF 和 SVG 文件。 确保远程图像的正确网络连接。 对于 Azure 环境,可考虑使用 来自 Azure Blob Storage 的图像


如何应用多个印章?

使用 ApplyMultipleStamps 通过传递印章数组来应用多个印章。 这种方法可以在一次操作中高效处理多个邮票。

:path=/static-assets/pdf/content-code-examples/how-to/stamp-text-image-multiple-stamps.cs
using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create two text stampers
TextStamper stamper1 = new TextStamper()
{
    Text = "Text stamp 1",
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Left,
};

TextStamper stamper2 = new TextStamper()
{
    Text = "Text stamp 2",
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Right,
};

Stamper[] stampersToApply = { stamper1, stamper2 };

// Apply multiple stamps
pdf.ApplyMultipleStamps(stampersToApply);

pdf.SaveAs("multipleStamps.pdf");
$vbLabelText   $csharpLabel

当印章重叠时会发生什么?

我可以混合使用不同类型的印章吗?

ApplyMultipleStamps 接受包含任何印章类型的数组。将 HTMLStamperBarcodeStamper 合并到一个操作中。 同时创建带有页眉、页脚、水印和识别码的复杂文档布局。


如何控制图章位置?

使用 3x3 网格(横向三列,纵向三行)定义图章位置。 选择水平对齐方式:左对齐、居中对齐、右对齐。 选择垂直对齐方式:上、中、下。 调整水平和垂直偏移以实现精确定位。 请参见下图,以获得直观的说明。

IronPDF 冲压 API 对齐网格显示水平/垂直定位选项和偏移示例

关键定位属性是什么?

  • HorizontalAlignment: 相对于页面的水平对齐方式。 默认值:HorizontalAlignment.Center
  • VerticalAlignment: 相对于页面的垂直对齐方式。 默认值:VerticalAlignment.Middle
  • HorizontalOffset: 水平偏移。 默认值:0,单位:MeasurementUnit.Percentage。 正值向右偏移,负值向左偏移。
  • VerticalOffset: 垂直偏移。 默认值:0,单位:MeasurementUnit.Percentage。 正值向下偏移,负值向上偏移。

如何设置精确偏移?

使用 Length 类指定 HorizontalOffsetVerticalOffset。 默认计量单位为百分比。 可用单位包括英寸、毫米、厘米、像素和点。 这样就可以实现精确定位,如在 PDF 文档中设置自定义页边距

代码

:path=/static-assets/pdf/content-code-examples/how-to/stamp-text-image-stamp-location.cs
using IronPdf.Editing;
using System;

// Create text stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,

    // Specify offsets
    HorizontalOffset = new Length(10),
    VerticalOffset = new Length(10),
};
$vbLabelText   $csharpLabel

如何在 HTML 内容上盖章?

使用 HtmlStamper 类为文本和图像添加印章。 HtmlStamper 使用 CSS 样式渲染 HTML 设计,然后将其添加到 PDF 文档中。 HtmlBaseUrl 属性指定 HTML 字符串资源(如 CSS 和图像文件)的基本 URL。 这与 将 HTML 转换为 PDF 使用相同的渲染引擎。

代码

:path=/static-assets/pdf/content-code-examples/how-to/stamp-text-image-multiple-stamps.cs
using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create two text stampers
TextStamper stamper1 = new TextStamper()
{
    Text = "Text stamp 1",
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Left,
};

TextStamper stamper2 = new TextStamper()
{
    Text = "Text stamp 2",
    VerticalAlignment = VerticalAlignment.Top,
    HorizontalAlignment = HorizontalAlignment.Right,
};

Stamper[] stampersToApply = { stamper1, stamper2 };

// Apply multiple stamps
pdf.ApplyMultipleStamps(stampersToApply);

pdf.SaveAs("multipleStamps.pdf");
$vbLabelText   $csharpLabel

哪些是基本的 HTML Stamper 属性?

  • Html: 要添加到 PDF 中的 HTML 片段。 对JavaScript、CSS 和图像的外部引用是相对于 HtmlBaseUrl 的。
  • HtmlBaseUrl: 外部 CSS、 JavaScript和图像文件引用的基本 URL。
  • CssMediaType: 启用 Media="screen" CSS 样式。 设置 AllowScreenCss=false 使用 CSS media="print" 渲染印章。 默认值:PdfCssMediaType.Screen

为什么使用 HTML Stamper 而不是 Text Stamper?

HTMLStamper 为复杂的布局、多种字体、颜色和嵌入式图像提供完整的 HTML 和 CSS 支持,可在一个水印中实现。非常适合用于富文本水印或标题。 保持一致的品牌形象,并与响应式 CSS 设计配合使用。


如何给 BarCode 打印章?

BarcodeStamper 类直接在现有 PDF 文档上添加条形码。 支持 QRCode、Code128 和 Code39 条码类型。

代码

:path=/static-assets/pdf/content-code-examples/how-to/stamp-text-image-stamp-text.cs
using IronPdf;
using IronPdf.Editing;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);

pdf.SaveAs("stampText.pdf");
$vbLabelText   $csharpLabel

条形码有哪些配置选项?

  • Value: 条形码的字符串值。
  • BarcodeType: 支持 QRCode、Code128 和 Code39 的编码类型。默认值:QRCode。
  • Width: 以像素为单位的渲染条形码宽度。 默认值:250px。
  • Height: 以像素为单位的渲染条形码高度。 默认值:250px。

何时使用每种条形码类型?

QRCode 可处理 URL 和大型数据集(最多可达 4296 个字母数字字符)。 Code128 适用于高密度要求的字母数字数据。 Code39 适用于简单的数字或大写字母组合。 选择条形码类型时要考虑扫描设备的兼容性。


还有哪些 Stamper 选项?

这些属性提供了对图章外观和行为的精细控制,类似于 创建自定义水印

如何控制印章外观?

  • Opacity: 控制透明度。 0 表示不可见,100 表示不透明。
  • Rotation: 将印章顺时针旋转 0 到 360 度。
  • MaxWidth: 输出戳记的最大宽度。
  • MaxHeight: 输出戳记的最大高度。
  • MinWidth: 输出戳记的最小宽度。
  • MinHeight: 输出戳记的最小高度。
  • Hyperlink: 为带戳记的元素添加点击超链接。 注意:HTML 链接(a 标记)不会因加盖戳记而被保留。
  • Scale: 对邮票应用百分比刻度。 默认值:100(无影响)。
  • IsStampBehindContent: 将印章放置在内容后面。 如果内容不透明,则可能看不到图章。
  • WaitFor: 等待事件或时间。请参阅使用 WaitFor 延迟 PDF 渲染
  • Timeout: 渲染超时时间(秒)。 默认值:60。

哪些属性最常用?

OpacityIsStampBehindContent 创建水印。 ScaleRotation 调整视觉定位和大小。 例:

// Create a semi-transparent watermark behind content
TextStamper watermark = new TextStamper()
{
    Text = "CONFIDENTIAL",
    FontSize = 60,
    FontColorCode = "#CCCCCC",
    Opacity = 25,
    Rotation = -45,
    IsStampBehindContent = true,
    VerticalAlignment = VerticalAlignment.Middle,
    HorizontalAlignment = HorizontalAlignment.Center
};
// Create a semi-transparent watermark behind content
TextStamper watermark = new TextStamper()
{
    Text = "CONFIDENTIAL",
    FontSize = 60,
    FontColorCode = "#CCCCCC",
    Opacity = 25,
    Rotation = -45,
    IsStampBehindContent = true,
    VerticalAlignment = VerticalAlignment.Middle,
    HorizontalAlignment = HorizontalAlignment.Center
};
$vbLabelText   $csharpLabel

摘要

IronPdf 的盖章功能可在现有 PDF 文档中添加文本、图像、HTML 内容和条形码。 四种具有广泛自定义选项的专业标注类可创建带有水印、页眉、页脚和注释的专业文档。 带有各种测量单位和对齐选项的定位系统可确保像素完美定位。 使用简单的文本图章或带有 CSS 风格的复杂 HTML 布局。 IronPDF 的戳记 API 为企业级 PDF 操作提供了灵活性和控制性。

常见问题解答

如何用 C# 在 PDF 文档中添加文本水印?

使用 IronPDF 的 TextStamper 类添加文本水印。创建一个 TextStamper 对象,设置 Text、FontSize 和 Opacity 等属性,然后使用 ApplyStamp 方法。您可以使用 VerticalAlignment 和 HorizontalAlignment 属性对水印进行定位,以便精确放置。

能否在现有 PDF 文件中添加图像作为图章?

是的,IronPDF 提供了 ImageStamper 类,用于向 PDF 添加图像。创建一个 ImageStamper 对象,指定图像文件,然后使用 ApplyStamp 方法。您可以使用基于零的页面索引来控制定位并指定要盖印的页面。

哪些类型的内容可以印制到 PDF 上?

IronPDF 支持四种类型的图章:TextStamper 用于文本注释和水印,ImageStamper 用于图像,HTMLStamper 用于具有完整 CSS 风格的 HTML 内容,BarcodeStamper 用于条形码。每个戳记类都提供精确的定位控制。

如何创建多行文本标记?

在 TextStamper 的 Text 属性中使用
标记来创建多行标记。例如,"line 1
line 2 "将在两个独立的行上显示文本,非常适合创建地址戳记或多行水印。

在 PDF 上印制文本时可以使用自定义字体吗?

是的,IronPDF 中的 TextStamper 支持系统字体和 Google 字体。将 UseGoogleFont 属性设为 true 即可使用 Google 字体,或使用 FontFamily 属性指定任何已安装的系统字体,以实现完全的排版控制。

是否可以只在特定页面上添加印章?

当然可以。ApplyStamp 方法接受一个页面索引参数,允许您对特定页面加盖戳记。IronPDF 使用基于零的索引,因此第 1 页为索引 0。您还可以使用 ApplyMultipleStamps 一次为多个页面添加图章。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 17,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。