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


C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

立即開始在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer

查看 IronPDFNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。

C# NuGet 程式庫用于 PDF 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 的第一頁。

提示
所有頁面索引均遵循基於零的索引。

: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。正值表示向右方向的偏移量,負值表示向左方向的偏移量。
  • VerticalOffset: 垂直偏移量。預設值為 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#

Stamp HTML 示例

還有另一個可以用來蓋章文字和影像的蓋章類別。HtmlStamper 類別可以用來渲染帶有 CSS 樣式的 HTML 設計,然後將它們蓋到 PDF 文件上。HtmlBaseUrl 屬性用於指定 HTML 字串資源的基本 URL,例如 CSS 和影像檔案。

代碼

: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:對外部CSS、Javascript和圖像文件的引用相對的HTML基本URL。
  • CssMediaType:啟用Media="screen" CSS樣式和樣式表。通過設置AllowScreenCss=false,IronPdf從HTML渲染印章時將使用媒體="print"的CSS,就像在瀏覽器的打印對話框中打印網頁一樣。預設值為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。

探索蓋章選項

除了上面提到和解釋的選項之外,蓋章類別還有以下更多選項。

  • Opacity:允許蓋章透明。0 是完全不可見的,100 是完全不透明的。
  • Rotation:將蓋章按指定的從0到360度順時針旋轉。
  • MaxWidth:輸出蓋章的最大寬度。
  • MaxHeight:輸出蓋章的最大高度。
  • MinWidth:輸出蓋章的最小寬度。
  • MinHeight:輸出蓋章的最小高度。
  • Hyperlink:使此蓋章的蓋章元素具有點擊超連結。注意:由鏈接創建的 HTML 鏈接(一) 標籤不會被 stamping 保留。
  • 比例:將百分比比例應用於標記,使其變大或變小。預設為 100 (百分比), 沒有影響。
  • IsStampBehindContent:設置為 true 則將印章應用於內容後面。如果內容是不透明的,印章可能是不可見的。
  • WaitFor:一個方便的包裝器,用於等待各種事件或僅等待一段時間。
  • Timeout:渲染超時,單位為秒。默認值為 60。

查克尼思·賓

軟體工程師

Chaknith 是開發者界的夏洛克福爾摩斯。他第一次意識到自己可能有個軟體工程的未來,是在他為了娛樂而參加程式挑戰的時候。他的重點是 IronXL 和 IronBarcode,但他也引以為豪的是,他幫助客戶解決所有產品的問題。Chaknith 利用他與客戶直接對話中獲得的知識,以進一步改進產品。他的實際反饋超越了 Jira 工單,並支持產品開發、文件撰寫和行銷,以提升客戶的整體體驗。不在公司時,他通常在學習機器學習、寫程式和徒步旅行。