Cómo estampar texto e imágenes en PDF

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

por Chaknith Bin

Estampar texto e imágenes en un PDF consiste en superponer contenido adicional a un documento PDF existente. Este contenido, a menudo denominado "sello", puede ser texto, imágenes o una combinación de ambos. Los sellos se suelen utilizar para añadir información, etiquetas, marcas de agua o anotaciones a un PDF.

Hay un total de 4 estampadores que se pueden utilizar en IronPDF. Este artículo va a hablar de TextStamper, ImageStamper, HTMLStamper, y BarcodeStamper. HTMLStamper es especialmente potente, ya que puede utilizar todas las características HTML junto con el estilo CSS.


Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Ejemplo de texto de sello

Primero, crea un objeto de la clase TextStamper. Este objeto contendrá todas las configuraciones para especificar cómo queremos que se muestre nuestro estampador de texto. Pasa el objeto TextStamper al método ApplyStamp. La propiedad Text será el texto mostrado. Además, podemos especificar la familia y el estilo de la fuente, así como la ubicación del sello.

: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#

Salida PDF

Para obtener texto de varias líneas en TextStamper, utilice la etiqueta <br> como en HTML. Por ejemplo, "línea 1 <br> línea 2" producirá "línea 1" en la primera línea y "línea 2" en la segunda.


Ejemplo de imagen de sello

De forma similar al estampador de texto, primero creamos un objeto de la clase ImageStamper y luego utilizamos el método ApplyStamp para aplicar la imagen al documento. El segundo parámetro de este método también acepta un índice de página, que puede utilizarse para aplicar el sello a una o varias páginas. En el ejemplo siguiente, especificamos que la imagen debe estamparse en la página 1 del PDF.

Consejos
Todos los índices de páginas siguen una indexación basada en cero.

: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#

Salida PDF


Aplicar varios sellos

Utilice el método ApplyMultipleStamps para aplicar múltiples sellos al documento pasándole una matriz de sellos.

: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#

Salida PDF


Ubicación del sello

Para definir la colocación del sello, utilizamos una cuadrícula de 3x3 con tres columnas horizontales y tres filas verticales. Tiene opciones de alineación horizontal: izquierda, centro y derecha, así como de alineación vertical: arriba, en medio y abajo. Para mayor precisión, puede ajustar los desplazamientos horizontal y vertical de cada posición. Consulte la imagen siguiente para ver una representación visual de este concepto.

Ubicación del sello
  • AlineaciónHorizontal: La alineación horizontal del sello con respecto a la página. El valor predeterminado es HorizontalAlignment.Center.
  • AlineaciónVertical: La alineación vertical del sello con respecto a la página. La configuración por defecto es VerticalAlignmentCenter.Middle.
  • Desplazamiento horizontal: El desplazamiento horizontal. El valor predeterminado es 0 y la unidad predeterminada es IronPDF.Editing.MeasurementUnit.Percentage. Los valores positivos indican un desplazamiento hacia la derecha, mientras que los negativos indican un desplazamiento hacia la izquierda.
  • DesplazamientoVertical: El desplazamiento vertical. El valor predeterminado es 0 y la unidad predeterminada es IronPDF.Editing.MeasurementUnit.Percentage. Los valores positivos indican un desplazamiento hacia abajo, mientras que los negativos indican un desplazamiento hacia arriba.

    Para especificar las propiedades HorizontalOffset y VerticalOffset, instanciamos la clase Length. La unidad de medida por defecto para Longitud es un porcentaje, pero también es capaz de utilizar unidades de medida como pulgadas, milímetros, centímetros, píxeles y puntos.

Código

: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#

Ejemplo de sello HTML

Hay otra clase de estampador que podemos utilizar para estampar tanto texto como imágenes. La clase HtmlStamper se puede utilizar para renderizar diseños HTML con estilos CSS y luego estamparlos en el documento PDF. La propiedad HtmlBaseUrl se utiliza para especificar la URL base para los activos de la cadena HTML, como los archivos CSS y de imagen.

Código

: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: El fragmento HTML que se estampará en su PDF. Todas las referencias externas a archivos JavaScript, CSS e imágenes serán relativas a la propiedad HtmlBaseUrl de la clase Stamper.
  • HtmlBaseUrl: La URL HTML base para la que serán relativas las referencias a archivos CSS, Javascript e Imagen externos.
  • CssMediaType: Activa Media="screen" Estilos CSS y StyleSheets. Al establecer AllowScreenCss=false, IronPDF renderiza Stamp desde HTML utilizando CSS para media="print" como si se imprimiera una página web en un diálogo de impresión del navegador. El valor por defecto es PdfCssMediaType.Screen.

Sello de código de barras Ejemplo

La clase BarcodeStamper se puede utilizar para estampar códigos de barras directamente en el documento PDF existente. El estampador admite tipos de códigos de barras como QRCode, Code128 y Code39.

Código

: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#
  • Valor: El valor de la cadena del código de barras.
  • Tipo de código de barras: El tipo de codificación para el código de barras, con tipos soportados que incluyen QRCode, Code128 y Code39. Por defecto es QRCode.
  • Ancho: La anchura del código de barras renderizado en píxeles. El valor por defecto es 250px.
  • Altura: La altura del código de barras renderizado en píxeles. El valor por defecto es 250px.

Explorar las opciones de Stamper

Además de las opciones mencionadas y explicadas anteriormente, a continuación encontrará más opciones disponibles para las clases de estampador.

  • Opacidad: Permite que el sello sea transparente. 0 es totalmente invisible, 100 es totalmente opaco.
  • Rotación: Rota el sello en el sentido de las agujas del reloj de 0 a 360 grados según se especifique.
  • AnchoMáx: La anchura máxima del sello de salida.
  • AlturaMáx: La altura máxima del sello de salida.
  • AnchoMín: La anchura mínima del sello de salida.
  • AlturaMínima: La altura mínima del sello de salida.
  • Hiperenlace: Hace que los elementos estampados de este Stamper tengan un hipervínculo al hacer clic. Nota: Los enlaces HTML creados por enlace(a) las etiquetas no se reservan por estampación.
  • Escala: Aplica una escala porcentual a los sellos para hacerlos más grandes o más pequeños. Por defecto es 100 (Porcentaje)que no tiene ningún efecto.
  • IsStampBehindContent: Establecer a true para aplicar el sello detrás del contenido. Si el contenido es opaco, el sello puede ser invisible.
  • Espera: Una envoltura conveniente para esperar varios eventos o simplemente esperar una cantidad de tiempo.
  • Tiempo de espera: Tiempo de espera en segundos. El valor por defecto es 60.

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.