Comment estampiller du texte et des images sur des PDF

Chaknith related to Comment estampiller du texte et des images sur des PDF
Chaknith Bin
octobre 9, 2023
Mise à jour février 5, 2025
Partager:
This article was translated from English: Does it need improvement?
Translated
View the article in English

L'ajout de texte et d'images à un PDF consiste à superposer du contenu supplémentaire à un document PDF existant. Ce contenu, souvent appelé "timbre", peut être du texte, des images ou une combinaison des deux. Les tampons sont généralement utilisés pour ajouter des informations, des étiquettes, des filigranes ou des annotations à un PDF.

Il y a au total 4 tampons qui peuvent être utilisés dans IronPDF. Cet article va parler de TextStamper, ImageStamper, HTMLStamper et BarcodeStamper. HTMLStamper est particulièrement puissant car il peut utiliser toutes les fonctionnalités HTML ainsi que le style CSS.

Commencez avec IronPDF

Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer



Exemple de texte de timbre

Tout d'abord, créez un objet à partir de la classe TextStamper. Cet objet contiendra toutes les configurations permettant de spécifier la manière dont nous voulons que notre texte s'affiche. Passez l'objet TextStamper à la méthode ApplyStamp. La propriété Text sera le texte affiché. En outre, nous pouvons spécifier la famille et le style de la police, ainsi que l'emplacement du cachet.

: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

Sortie PDF

Pour obtenir un texte sur plusieurs lignes dans TextStamper, utilisez la balise <br&gt ; comme en HTML. Par exemple, "ligne 1 <br&gt ; ligne 2" produira "ligne 1" sur la première ligne et "ligne 2" sur la seconde.


Exemple d'image de timbre

Similaire au tampon de texte, nous créons d'abord un objet à partir de la classe ImageStamper, puis nous utilisons la méthode ApplyStamp pour appliquer l'image au document. Le deuxième paramètre de cette méthode accepte également un index de page, qui peut être utilisé pour appliquer le cachet à une ou plusieurs pages. Dans l'exemple ci-dessous, nous spécifions que l'image doit être apposée sur la page 1 du PDF.

Conseils
Tous les index de pages suivent l'indexation à base zéro.

: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

Sortie PDF


Appliquer plusieurs tampons

Utilisez la méthode ApplyMultipleStamps pour appliquer plusieurs tampons sur le document en lui passant un tableau de tamponneuses.

: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

Sortie PDF


Emplacement du tampon

Pour définir l'emplacement du timbre, nous utilisons une grille de 3x3 avec trois colonnes horizontales et trois lignes verticales. Vous pouvez choisir l'alignement horizontal : gauche, centre et droite, ainsi que l'alignement vertical : haut, milieu et bas. Pour plus de précision, vous pouvez ajuster les décalages horizontaux et verticaux pour chaque position. L'image ci-dessous donne une représentation visuelle de ce concept.

Emplacement du tampon
  • HorizontalAlignment : L'alignement horizontal du tampon par rapport à la page. Le paramètre par défaut est HorizontalAlignment.Center.
  • VerticalAlignment : L'alignement vertical du tampon par rapport à la page. Le paramètre par défaut est VerticalAlignmentCenter.Middle.
  • HorizontalOffset : Le décalage horizontal. La valeur par défaut est 0 et l'unité par défaut est IronPDF.Editing.MeasurementUnit.Percentage. Les valeurs positives indiquent un décalage vers la droite, tandis que les valeurs négatives indiquent un décalage vers la gauche.
  • VerticalOffset : Le décalage vertical. La valeur par défaut est 0 et l'unité par défaut est IronPDF.Editing.MeasurementUnit.Percentage. Les valeurs positives indiquent un décalage vers le bas, tandis que les valeurs négatives indiquent un décalage vers le haut.

    Pour spécifier les propriétés HorizontalOffset et VerticalOffset, nous instancions la classe Length. L'unité de mesure par défaut de la longueur est le pourcentage, mais elle peut également utiliser des unités de mesure telles que les pouces, les millimètres, les centimètres, les pixels et les points.

Code

: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

Exemple HTML de timbre

Il existe une autre classe de tampons que nous pouvons utiliser pour tamponner à la fois du texte et des images. La classe HtmlStamper peut être utilisée pour rendre des conceptions HTML avec un style CSS et ensuite les tamponner sur le document PDF. La propriété HtmlBaseUrl est utilisée pour spécifier l'URL de base pour les ressources de la chaîne HTML, telles que les fichiers CSS et image.

Code

: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")
$vbLabelText   $csharpLabel
  • Html : Le fragment HTML à estampiller sur votre PDF. Toutes les références externes aux fichiers JavaScript, CSS et images seront relatives à la propriété HtmlBaseUrl de la classe Stamper.
  • HtmlBaseUrl : L'URL de base HTML pour laquelle les références aux fichiers CSS, Javascript et Image externes seront relatives.
  • CssMediaType : Active les styles CSS Media="screen" et les feuilles de style. En définissant AllowScreenCss=false, IronPDF rend Stamp à partir de HTML en utilisant CSS pour media="print" comme s'il imprimait une page web dans une boîte de dialogue d'impression du navigateur. La valeur par défaut est PdfCssMediaType.Screen.

Exemple de code-barres pour les timbres

La classe BarcodeStamper peut être utilisée pour tamponner un code-barres directement sur le document PDF existant. L'estampeuse prend en charge les types de codes-barres tels que QRCode, Code128 et Code39.

Code

: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")
$vbLabelText   $csharpLabel
  • Valeur : La valeur chaîne du code-barres.
  • BarcodeType : Le type d'encodage pour le code-barres, avec des types pris en charge incluant QRCode, Code128, et Code39. Par défaut, c'est QRCode.
  • Largeur : La largeur du code-barres rendu en pixels. La valeur par défaut est de 250px.
  • Hauteur : La hauteur du code-barres rendu en pixels. La valeur par défaut est de 250px.

Explorer les options de tampons

En plus des options mentionnées et expliquées ci-dessus, voici d'autres options disponibles pour les classes d'estampeurs.

  • Opacité : Permet au tampon d'être transparent. 0 est totalement invisible, 100 est totalement opaque.
  • Rotation : Fait pivoter le tampon dans le sens des aiguilles d'une montre de 0 à 360 degrés comme spécifié.
  • MaxWidth : La largeur maximale du tampon de sortie.
  • MaxHeight : La hauteur maximale du tampon de sortie.
  • MinWidth : La largeur minimale du tampon de sortie.
  • MinHeight : La hauteur minimale du tampon de sortie.
  • Hyperlien : Permet aux éléments estampillés de ce Stamper d'avoir un hyperlien cliquable. Remarque : Les liens HTML créés par les balises link(a) ne sont pas réservés par estampillage.
  • Échelle : Applique une échelle en pourcentage aux tampons pour les agrandir ou les réduire. La valeur par défaut est 100 (pourcentage), ce qui n'a aucun effet.
  • IsStampBehindContent : Défini sur true pour appliquer le tampon derrière le contenu. Si le contenu est opaque, le cachet peut être invisible.
  • WaitFor : Un wrapper pratique pour attendre divers événements ou simplement attendre un certain temps.
  • Délai d'expiration : Durée d'expiration du rendu en secondes. La valeur par défaut est 60.
Chaknith related to Explorer les options de tampons
Ingénieur logiciel
Chaknith est le Sherlock Holmes des développeurs. C'est en s'amusant à relever des défis de code qu'il s'est rendu compte pour la première fois qu'il pourrait avoir un avenir dans le domaine de l'ingénierie logicielle. Il se concentre sur IronXL et IronBarcode, mais il est fier d'aider les clients avec chaque produit. Chaknith tire parti des connaissances qu'il a acquises en discutant directement avec les clients pour améliorer les produits eux-mêmes. Ses commentaires anecdotiques vont au-delà des tickets Jira et soutiennent le développement de produits, la documentation et le marketing, afin d'améliorer l'expérience globale des clients.Quand il n'est pas au bureau, on peut le trouver en train d'apprendre sur l'apprentissage automatique, le codage et la randonnée.