如何在 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样式。

开始使用IronPDF

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

第一步:
green arrow pointer



印章文字示例

首先,从 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.Center。
  • 垂直对齐:章的垂直对齐方式相对于页面。 默认设置为VerticalAlignmentCenter.Middle。
  • HorizontalOffset:水平偏移。 默认值为 0, 默认单位为 IronPdf.Editing.MeasurementUnit.Percentage。 正值表示向右偏移,负值表示向左偏移。
  • VerticalOffset:垂直偏移。 默认值为 0, 默认单位为 IronPdf.Editing.MeasurementUnit.Percentage。 正值表示向下偏移,负值表示向上偏移。

    要指定HorizontalOffsetVerticalOffset属性,我们实例化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#

Stamp 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 Class的HtmlBaseUrl属性。
  • HtmlBaseUrl:HTML基本网址,外部CSS、Javascript和图像文件的引用将与此网址相关。
  • CssMediaType:启用 Media="screen" 的 CSS 样式和样式表。 通过将 AllowScreenCss 设置为 false,IronPdf 使用适用于 media="print" 的 CSS 从 HTML 渲染印章,就像在浏览器打印对话框中打印网页一样。 默认值为 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#
  • :条形码的字符串值。
  • 条形码类型:条形码的编码类型,支持的类型包括QRCode、Code128和Code39。默认为QRCode。
  • 宽度:渲染条码的宽度,单位为像素。 默认为250px。
  • 高度:以像素为单位的渲染条形码的高度。 默认为250px。

探索印章选项

除了上面提到并解释的选项之外,下面是给印章类可用的更多选项。

  • 不透明度:允许印章透明。 0 是完全透明的,100 是完全不透明的。
  • 旋转:根据指定,将印章顺时针旋转从0度到360度。
  • MaxWidth:输出印章的最大宽度。
  • MaxHeight:输出印章的最大高度。
  • MinWidth:输出印章的最小宽度。
  • 最小高度:输出印章的最小高度。
  • 超链接:使此印章工具中的标记元素具有点击时的超链接功能。 注意:HTML链接由link创建(a)标签不由印章保留。
  • 缩放:对印章应用百分比缩放,使其变大或变小。 默认值为100(百分比),这没有影响。
  • IsStampBehindContent:设置为 true 以将印章应用于内容后面。 如果内容不透明,印章可能会看不见。
  • WaitFor:一个便捷的封装,用于等待各种事件或仅仅等待一段时间。
  • 超时:渲染超时(秒)。 默认值为60。
Chaknith related to 探索印章选项

查克尼特·宾

软件工程师

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