如何在 PDF 文件上印制文字和图像

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

查克尼特·宾

在 PDF 上盖印文本和图像是指在现有的 PDF 文档上叠加额外的内容。这些内容通常被称为 "图章",可以是文本、图像或两者的组合。图章通常用于在 PDF 上添加信息、标签、水印或注释。

IronPdf 中总共有 4 种图章。本文将介绍TextStamperImageStamperHTMLStamperBarcodeStamper。HTMLStamper 尤其强大,因为它可以利用所有 HTML 功能和 CSS 样式。


适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronPDFNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。

适用于PDF的C# NuGet库 nuget.org/packages/IronPdf/
Install-Package IronPdf

考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip

手动安装到你的项目中

下载DLL

印章文本示例

首先,从 TextStamper 类中创建一个对象。该对象将包含所有配置,用于指定文本戳记的显示方式。将 TextStamper 对象传递给 ApplyStamp 方法。Text 属性将是显示的文本。此外,我们还可以指定字体家族、字体样式以及印章的位置。

: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")
VB   C#

输出 PDF

要在 TextStamper 中实现多行文本,请使用 HTML 中的 <br> 标记。例如,"line 1 <br> line 2 "将在第一行产生 "line 1",在第二行产生 "line 2"。


邮票图像示例

与文本印章类似,我们首先从 ImageStamper 类中创建一个对象,然后使用 ApplyStamp 方法将图像应用到文档中。该方法的第二个参数还接受一个页面索引,可用于将图章应用到单页或多页。在下面的示例中,我们指定在 PDF 的第 1 页加盖图像。

提示
所有页面索引都采用基于零的索引方式。

: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")
VB   C#

输出 PDF


应用多个印章

使用 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")
VB   C#

输出 PDF


印章位置

为了确定图章的位置,我们使用了一个 3x3 网格,其中有三列水平线和三行垂直线。您可以选择水平对齐方式:左、中、右,以及垂直对齐方式:上、中、下。为提高精确度,您可以调整每个位置的水平和垂直偏移量。请参考下图,直观了解这一概念。

邮票位置
  • HorizontalAlignment:邮票相对于页面的水平对齐方式。默认设置为 HorizontalAlignment.Center。
  • VerticalAlignment:垂直对齐方式:邮票相对于页面的垂直对齐方式。默认设置为 VerticalAlignmentCenter.Middle。
  • HorizontalOffset:水平偏移。默认值为 0,默认单位为 IronPdf.Editing.MeasurementUnit.Percentage。正值表示向右偏移,负值表示向左偏移。
  • 垂直偏移:垂直偏移量。默认值为 0,默认单位为 IronPdf.Editing.MeasurementUnit.Percentage。正值表示向下偏移,负值表示向上偏移。

为了指定 HorizontalOffsetVerticalOffset 属性,我们将 Length 类实例化。Length 的默认测量单位是百分比,但也可以使用英寸、毫米、厘米、像素和点等测量单位。

代码

: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)
}
VB   C#

印章 HTML 示例

我们还可以使用另一种戳记类来戳记文本和图像。HtmlStamper 类可用于渲染带有 CSS 样式的 HTML 设计,然后将其印制到 PDF 文档中。HtmlBaseUrl 属性用于指定 HTML 字符串资产(如 CSS 和图像文件)的基本 URL。

代码

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

ChromePdfRenderer renderer = new ChromePdfRenderer();

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

// Create HTML stamper
HtmlStamper htmlStamper = new HtmlStamper()
{
    Html = @"<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg'>
    <h1>Iron Software</h1>",
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the HTML stamper
pdf.ApplyStamp(htmlStamper);

pdf.SaveAs("stampHtml.pdf");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()

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

' Create HTML stamper
Private htmlStamper As New HtmlStamper() With {
	.Html = "<img src='https://ironpdf.com/img/svgs/iron-pdf-logo.svg'>
    <h1>Iron Software</h1>",
	.VerticalAlignment = VerticalAlignment.Top
}

' Stamp the HTML stamper
pdf.ApplyStamp(htmlStamper)

pdf.SaveAs("stampHtml.pdf")
VB   C#
  • Html:要印制到 PDF 上的 HTML 片段。所有对 JavaScript、CSS 和图片文件的外部引用都将相对于 Stamper 类的 HtmlBaseUrl 属性。
  • HtmlBaseUrl:HTML 基本 URL,外部 CSS、Javascript 和图像文件的引用将相对于该 URL。

  • CSSMediaType:启用 Media="screen" CSS 样式和样式表。通过设置 AllowScreenCss=false,IronPdf 将使用 CSS 从 HTML 渲染媒体="打印 "的 Stamp,就像在浏览器打印对话框中打印网页一样。默认值为 PdfCssMediaType.Screen。

邮票条形码示例

BarcodeStamper 类可用于在现有 PDF 文档上直接加印条形码。条码标记器支持的条码类型包括 QRCode、Code128 和 Code39。

代码

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

ChromePdfRenderer renderer = new ChromePdfRenderer();

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

// Create barcode stamper
BarcodeStamper barcodeStamper = new BarcodeStamper("IronPdf!!", BarcodeEncoding.Code39)
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the barcode stamper
pdf.ApplyStamp(barcodeStamper);

pdf.SaveAs("stampBarcode.pdf");
Imports IronPdf
Imports IronPdf.Editing

Private renderer As New ChromePdfRenderer()

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

' Create barcode stamper
Private barcodeStamper As New BarcodeStamper("IronPdf!!", BarcodeEncoding.Code39) With {.VerticalAlignment = VerticalAlignment.Top}

' Stamp the barcode stamper
pdf.ApplyStamp(barcodeStamper)

pdf.SaveAs("stampBarcode.pdf")
VB   C#
  • :条形码的字符串值。
  • BarcodeType:条形码的编码类型,支持的类型包括 QRCode、Code128 和 Code39。默认为 QRCode。
  • 宽度:渲染条形码的宽度(像素)。默认值为 250px。
  • **高度***:渲染条形码的高度(像素)。默认值为 250px。

探索印章选项

除了上面提到和解释的选项外,下面还有更多选项可供印章类使用。

  • 透明度:允许印章透明。0 表示完全不可见,100 表示完全不透明。
  • 旋转:按指定的顺时针方向将图章旋转 0 至 360 度。
  • 最大宽度:输出印章的最大宽度。
  • MaxHeight:输出印章的最大高度。
  • MinWidth:输出印章的最小宽度。
  • MinHeight:输出印章的最小高度。
  • 超链接:使该印章器的印章元素具有单击超链接。注意:通过链接(a) 标签不通过戳记保留。
  • 比例:对图章应用百分比比例,使其变大或变小。默认值为 100 (百分比)没有任何效果。
  • IsStampBehindContent:设置为 "true "可在内容后面应用图章。如果内容不透明,图章可能不可见。
  • WaitFor:一个方便的包装器,用于等待各种事件或等待一定时间。

  • 超时:渲染超时,单位为秒。默认值为 60。

查克尼特·宾

软件工程师

Chaknith 是开发者中的福尔摩斯。他第一次意识到自己可能在软件工程方面有前途,是在他出于乐趣做代码挑战的时候。他的重点是 IronXL 和 IronBarcode,但他为能帮助客户解决每一款产品的问题而感到自豪。Chaknith 利用他从直接与客户交谈中获得的知识,帮助进一步改进产品。他的轶事反馈不仅仅局限于 Jira 票据,还支持产品开发、文档编写和市场营销,从而提升客户的整体体验。当他不在办公室时,他可能会在学习机器学习、编程或徒步旅行。