如何在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在已有的PDF文档上添加文本、图片、HTML内容和条形码,在C#中使用BarcodeStamper类实现精确位置控制。

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

IronPDF提供四种盖章器:BarcodeStamperHTMLStamper利用所有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对象。 将ApplyStamp方法。 Text属性设置显示的文本。 配置字体系列、字体样式和印章位置。

TextStamper提供与管理PDF文档中的字体类似的广泛定制选项。 通过将UseGoogleFont设置为true使用系统字体或谷歌字体。

: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");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()

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

' Create text stamper
Private textStamper As New TextStamper() With {
	.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 是什么样子?

如何创建多行文本印章?

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


如何在 PDF 上加盖图像?

创建一个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");
Imports IronPdf
Imports IronPdf.Editing
Imports System

Private renderer As New ChromePdfRenderer()

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

' Create image stamper
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.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");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()

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

' Create two text stampers
Private stamper1 As New TextStamper() With {
	.Text = "Text stamp 1",
	.VerticalAlignment = VerticalAlignment.Top,
	.HorizontalAlignment = HorizontalAlignment.Left
}

Private stamper2 As New TextStamper() With {
	.Text = "Text stamp 2",
	.VerticalAlignment = VerticalAlignment.Top,
	.HorizontalAlignment = HorizontalAlignment.Right
}

Private stampersToApply() As Stamper = { stamper1, stamper2 }

' Apply multiple stamps
pdf.ApplyMultipleStamps(stampersToApply)

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

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

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

BarcodeStamper。 同时创建带有页眉、页脚、水印和识别码的复杂文档布局。


如何控制图章位置?

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

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

关键定位属性是什么?

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

如何设置精确偏移?

使用VerticalOffset。 默认计量单位为百分比。 可用单位包括英寸、毫米、厘米、像素和点。 这样就可以实现精确定位,如在 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),
};
Imports IronPdf.Editing
Imports System

' Create text stamper
Private imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {
	.HorizontalAlignment = HorizontalAlignment.Center,
	.VerticalAlignment = VerticalAlignment.Top,
	.HorizontalOffset = New Length(10),
	.VerticalOffset = New Length(10)
}
$vbLabelText   $csharpLabel

Icon Quote related to 代码

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic related to 代码

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to 代码

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle related to 代码

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to 代码

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones related to 代码

David Jones

首席软件工程师,Agorus Build

查看案例研究

如何在 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");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()

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

' Create two text stampers
Private stamper1 As New TextStamper() With {
	.Text = "Text stamp 1",
	.VerticalAlignment = VerticalAlignment.Top,
	.HorizontalAlignment = HorizontalAlignment.Left
}

Private stamper2 As New TextStamper() With {
	.Text = "Text stamp 2",
	.VerticalAlignment = VerticalAlignment.Top,
	.HorizontalAlignment = HorizontalAlignment.Right
}

Private stampersToApply() As Stamper = { 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");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()

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

' Create text stamper
Private textStamper As New TextStamper() With {
	.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。

哪些属性最常用?

IsStampBehindContent创建水印。 Rotation调整视觉定位和尺寸。 例:

// 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
};
' Create a semi-transparent watermark behind content
Dim watermark As New TextStamper() With {
    .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 文档中添加文本水印?

using 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 下载 20,296,129 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

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