Stamp Text & Image on PDFs using C# and IronPDF
IronPDF stempluje tekst, obrazy, zawartość HTML i kody kreskowe na istniejących dokumentach PDF w C# za pomocą klas TextStamper, ImageStamper, HTMLStamper i BarcodeStamper z precyzyjną kontrolą pozycjonowania.
Stemplowanie nakłada dodatkową zawartość na istniejące dokumenty PDF. Stemple dodają informacje, etykiety, znaki wodne lub adnotacje do PDFów. Użyj stempli do dodawania nagłówków i stopek lub tworzenia niestandardowych znaków wodnych dzięki rozbudowanym możliwościom stemplowania IronPDF.
IronPDF oferuje cztery stemple: TextStamper, ImageStamper, HTMLStamper i BarcodeStamper. HTMLStamper wykorzystuje wszystkie funkcje HTML z CSS, podobnie do konwersji ciągów HTML na PDF.
Szybki start: Natychmiastowe stemplowanie tekstu na PDFach
Użyj klasy TextStamper IronPDF, aby dodać adnotacje tekstowe, znaki wodne lub etykiety do dokumentów PDF. Poniższy przykład pokazuje stemplowanie tekstu na PDFie za pomocą metody ApplyStamp.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
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"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz bibliotekę C# do stemplowania tekstu i obrazów
- Utwórz i skonfiguruj pożądaną klasę stempli
- Użyj metody
ApplyStampdo zastosowania stempla na PDFie - Stosuj wiele stempli za pomocą metody
ApplyMultipleStamps - Określ określone strony, na które mają zostać zastosowane stemple
Jak wystemplować tekst na PDFach?
Utwórz obiekt TextStamper zawierający wszystkie konfiguracje wyświetlania. Przekaż obiekt TextStamper do metody ApplyStamp. Właściwość Text ustawia wyświetlany tekst. Skonfiguruj rodzinę czcionek, stylizację czcionek i lokalizację stempla.
TextStamper oferuje rozległe opcje dostosowywania podobne do zarządzania czcionkami w dokumentach PDF. Użyj czcionek systemowych lub czcionek Google, ustawiając UseGoogleFont na 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")
Jak wygląda plik PDF z tłumaczeniem?
Jak utworzyć stemple tekstowe z wieloma liniami?
Użyj znacznika <br> dla tekstu wieloliniowego w TextStamper. Na przykład "linia 1
linia 2" tworzy "linia 1" na pierwszej linii i "linia 2" na drugiej linii. To tworzy stemple adresowe lub znaki wodne z wieloma liniami.
Jak wystemplować obrazy na PDFach?
Utwórz obiekt ImageStamper i użyj metody ApplyStamp, aby zastosować obrazy do dokumentów. Drugi parametr metody akceptuje indeks strony dla stemplowania pojedynczych lub wielu stron. Poniższy przykład stempluje obraz na stronie 1 PDFa.
Dla złożonych operacji obrazowych, zbadaj dodawanie obrazów do PDFów lub pracę z plikami obrazu zakodowanymi jako 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")
Jak wygląda wynik stemplowania obrazu?
Jakie formaty obrazów są obsługiwane?
ImageStamper obsługuje PNG, JPEG, GIF i SVG poprzez URI lub ścieżki do plików. Upewnij się, że masz odpowiednie połączenie z siecią dla zdalnych obrazów. Dla środowisk Azure rozważ użycie obrazów z Azure Blob Storage.
Jak mogę zastosować wiele stempli?
Użyj ApplyMultipleStamps, aby zastosować wiele stempli, przekazując tablicę stemplów. Ta metoda efektywnie przetwarza kilka stempli w jednej operacji.
: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")
Co się stanie, gdy stemple się pokrywają?
Czy mogę mieszać różne typy stempli?
ApplyMultipleStamps akceptuje tablice zawierające dowolne typy stemplów. Kombinuj TextStamper, ImageStamper, HTMLStamper i BarcodeStamper w jednej operacji. Twórz zaawansowane układy dokumentów z nagłówkami, stopkami, znakami wodnymi i kodami identyfikacyjnymi jednocześnie.
Jak kontrolować lokalizację stempla?
Określ miejsce stempla za pomocą siatki 3x3 z trzema poziomymi kolumnami i trzema pionowymi wierszami. Wybierz wyrównanie poziome: lewo, środek, prawo. Wybierz wyrównanie pionowe: góra, środek, dół. Dostosuj przesunięcia poziome i pionowe dla precyzyjnego pozycjonowania. Zobacz obraz poniżej dla wizualnej reprezentacji.
Jakie są kluczowe właściwości pozycjonowania?
HorizontalAlignment: Wyrównanie poziome względem strony. Domyślne:HorizontalAlignment.Center.VerticalAlignment: Wyrównanie pionowe względem strony. Domyślne:VerticalAlignment.Middle.HorizontalOffset: Przesunięcie poziome. Domyślnie: 0, jednostka:MeasurementUnit.Percentage. Wartości dodatnie przesuwają w prawo, ujemne przesuwają w lewo.VerticalOffset: Przesunięcie pionowe. Domyślnie: 0, jednostka:MeasurementUnit.Percentage. Wartości dodatnie przesuwają w dół, ujemne przesuwają w górę.
Jak ustawić precyzyjne przesunięcia?
Określ HorizontalOffset i VerticalOffset za pomocą klasy Length. Domyślna jednostka miary to procent. Dostępne jednostki to cale, milimetry, centymetry, piksele i punkty. Umożliwia to precyzyjne pozycjonowanie, takie jak ustawianie niestandardowych marginesów w dokumentach PDF.
Kod
: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)
}
Jak stemplować zawartość HTML?
Użyj klasy HtmlStamper do stemplowania tekstu i obrazów. HtmlStamper renderuje projekty HTML z CSS i następnie stempluje je na dokumentach PDF. Właściwość HtmlBaseUrl określa bazowy URL dla zasobów ciągu HTML, takich jak pliki CSS i obrazy. Używa to tej samej maszyny renderującej co konwersja HTML na PDF.
Kod
: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")
Jakie są podstawowe właściwości stempla HTML?
Html: Fragment HTML do wystemplowania na PDFie. Zewnętrzne odniesienia do JavaScript, CSS i obrazów są relatywne doHtmlBaseUrl.HtmlBaseUrl: Bazowy URL dla zewnętrznych odniesień do plików CSS, JavaScript i obrazów.CssMediaType: Aktywuje style CSS Media="screen". UstawienieAllowScreenCss=falserenderuje stemple za pomocą CSS media="print". Domyślne:PdfCssMediaType.Screen.
Dlaczego używać stempla HTML zamiast tekstowego?
HTMLStamper oferuje pełne wsparcie HTML i CSS dla zaawansowanych układów, wielu czcionek, kolorów i osadzonych obrazów w jednym stemplu. Idealne do bogatych treści znaków wodnych lub nagłówków. Utrzymuje spójność marki i działa z responsywnymi projektami CSS.
Jak stemplować kody kreskowe?
Klasa BarcodeStamper stempluje kody kreskowe bezpośrednio na istniejących dokumentach PDF. Obsługuje typy kodów kreskowych: QRCode, Code128 i Code39.
Kod
: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")
Jakie opcje konfiguracji są dostępne dla kodów kreskowych?
Value: Wartość tekstowa kodu kreskowego.BarcodeType: Typ kodowania obsługujący QRCode, Code128 i Code39. Domyślnie: QRCode.Width: Szerokość renderowanego kodu kreskowego w pikselach. Domyślnie: 250px.Height: Wysokość renderowanego kodu kreskowego w pikselach. Domyślnie: 250px.
Kiedy używać każdego z typów kodów kreskowych?
QRCode obsługuje adresy URL i duże zestawy danych (do 4 296 znaków alfanumerycznych). Code128 nadaje się do danych alfanumerycznych z wysokimi wymaganiami co do gęstości. Code39 działa dla prostych kombinacji cyfr lub wielkich liter. Pod uwagę weź kompatybilność sprzętu skanującego przy wyborze typów kodów kreskowych.
Jakie są dodatkowe opcje stempla?
Te właściwości zapewniają precyzyjną kontrolę nad wyglądem i zachowaniem stempla, podobnie do tworzenia niestandardowych znaków wodnych.
Jak kontrolować wygląd stempla?
Opacity: Kontroluje przezroczystość. 0 jest niewidoczne, 100 jest nieprzezroczyste.Rotation: Obraca stempel zgodnie z ruchem wskazówek zegara od 0 do 360 stopni.MaxWidth: Maksymalna szerokość wyjściowego stempla.MaxHeight: Maksymalna wysokość wyjściowego stempla.MinWidth: Minimalna szerokość wyjściowego stempla.MinHeight: Minimalna wysokość wyjściowego stempla.Hyperlink: Dodaje łącze hypertekstowe klikane do wystemplowanych elementów. Uwaga: Łącza HTML (znaczniki a) nie są zachowywane podczas stemplowania.Scale: Zastosowuje skalę procentową do stempli. Domyślnie: 100 (bez efektu).IsStampBehindContent: Umieszcza stempel za zawartością. Stempel może być niewidoczny, jeśli zawartość jest nieprzezroczysta.WaitFor: Czeka na wydarzenia lub czas. Zobacz używanie WaitFor, aby opóźnić renderowanie PDFa.Timeout: Czas oczekiwania na renderowanie w sekundach. Domyślnie: 60.
Które właściwości są najczęściej używane?
Opacity i IsStampBehindContent tworzą znaki wodne. Scale i Rotation dostosowują wizualne pozycjonowanie i rozmiarowanie. Przykład:
// 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
}
Podsumowanie
Funkcjonalność stemplowania IronPDF dodaje tekst, obrazy, zawartość HTML i kody kreskowe do istniejących dokumentów PDF. Cztery specjalistyczne klasy stempli z rozbudowanymi opcjami dostosowywania pozwalają tworzyć profesjonalne dokumenty z znakami wodnymi, nagłówkami, stopkami i adnotacjami. System pozycjonowania z różnymi jednostkami miary i opcjami wyrównania zapewnia idealne dopasowanie co do piksela. Można używać prostych znaczników tekstowych lub złożonych układów HTML ze stylami CSS. API stemplowania IronPDF zapewnia elastyczność i kontrolę nad operacjami na plikach PDF na poziomie Enterprise.
Często Zadawane Pytania
How do I add a text watermark to my PDF documents in C#?
Use IronPDF's TextStamper class to add text watermarks. Create a TextStamper object, set properties like Text, FontSize, and Opacity, then use the ApplyStamp method. You can position watermarks using VerticalAlignment and HorizontalAlignment properties for precise placement.
Can I add images as stamps to existing PDF files?
Yes, IronPDF provides the ImageStamper class for adding images to PDFs. Create an ImageStamper object, specify the image file, and use the ApplyStamp method. You can control positioning and specify which pages to stamp using zero-based page indexing.
What types of content can be stamped onto PDFs?
IronPDF supports four types of stamps: TextStamper for text annotations and watermarks, ImageStamper for images, HTMLStamper for HTML content with full CSS styling, and BarcodeStamper for barcodes. Each stamper class offers precise positioning control.
How do I create multi-line text stamps?
Use the
tag within the TextStamper's Text property to create multi-line stamps. For example, 'line 1
line 2' will display text on two separate lines, perfect for creating address stamps or multi-line watermarks.
Can I use custom fonts when stamping text on PDFs?
Yes, TextStamper in IronPDF supports both system fonts and Google Fonts. Set the UseGoogleFont property to true to use Google Fonts, or specify any installed system font using the FontFamily property for complete typography control.
Is it possible to add stamps to specific pages only?
Absolutely. The ApplyStamp method accepts a page index parameter that allows you to stamp specific pages. IronPDF uses zero-based indexing, so page 1 is index 0. You can also use ApplyMultipleStamps to add stamps to multiple pages at once.

