Cómo agregar sellos y marcas de agua a PDFs en C#

Stamp Text & Image on PDFs using C# and IronPDF

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

IronPDF estampa texto, imágenes, contenido HTML y códigos de barras en documentos PDF existentes en C# usando las clases TextStamper, ImageStamper, HTMLStamper y BarcodeStamper con control de posicionamiento preciso.

La estampación superpone contenido adicional a documentos PDF existentes. Los sellos añaden información, etiquetas, marcas de agua o anotaciones a los PDF. Utilice sellos para añadir encabezados y pies de página o crear marcas de agua personalizadas con las completas funciones de sellado de IronPDF.

IronPDF proporciona cuatro estampadores: TextStamper, ImageStamper, HTMLStamper y BarcodeStamper. HTMLStamper utiliza todas las características HTML con estilo CSS, similar a la conversión de cadenas HTML a PDF .

Inicio rápido: Estampar texto en archivos PDF al instante

Utilice la clase TextStamper de IronPDF para agregar anotaciones de texto, marcas de agua o etiquetas a documentos PDF. El siguiente ejemplo demuestra cómo estampar texto en un PDF utilizando el método ApplyStamp.

  1. Instala IronPDF con el Administrador de Paquetes NuGet

    PM > Install-Package IronPdf
  2. Copie y ejecute este fragmento de código.

    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");
  3. Despliegue para probar en su entorno real

    Comienza a usar IronPDF en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer


¿Cómo estampar texto en PDF?

Crea un objeto TextStamper que contenga todas las configuraciones de visualización. Pase el objeto TextStamper al método ApplyStamp. La propiedad Text establece el texto mostrado. Configure la familia de fuentes, el estilo de fuente y la ubicación del sello.

TextStamper ofrece amplias opciones de personalización similares a la gestión de fuentes en documentos PDF. Utilice fuentes del sistema o Google Fonts configurando UseGoogleFont en verdadero.

: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");
$vbLabelText   $csharpLabel

¿Qué aspecto tiene el PDF de salida?

¿Cómo puedo crear sellos de texto de varias líneas?

Utilice la etiqueta <br> para texto de varias líneas en TextStamper. Por ejemplo, "línea 1
línea 2" produce "línea 1" en la primera línea y "línea 2" en la segunda. Así se crean sellos de dirección o marcas de agua de varias líneas.


¿Cómo estampar imágenes en PDF?

Cree un objeto ImageStamper y utilice el método ApplyStamp para aplicar imágenes a los documentos. El segundo parámetro del método acepta un índice de página para estampar páginas individuales o múltiples. En el ejemplo siguiente se estampa la imagen de la página 1 del PDF.

ConsejosTodos los índices de páginas siguen la indexación basada en cero.

Para operaciones de imagen complejas, explore añadir imágenes a PDF o trabajar con imágenes codificadas en 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");
$vbLabelText   $csharpLabel

¿Qué aspecto tiene la salida del sello de imagen?

¿Qué formatos de imagen son compatibles?

ImageStamper admite PNG, JPEG, GIF y SVG a través de referencias URI o rutas de archivos. Garantizar una conectividad de red adecuada para las imágenes remotas. Para entornos Azure, considere el uso de imágenes de Azure Blob Storage.


¿Cómo puedo aplicar varios sellos?

Utilice ApplyMultipleStamps para aplicar múltiples sellos pasando una matriz de estampadores. Este método procesa eficazmente varios sellos en una sola operación.

: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");
$vbLabelText   $csharpLabel

¿Qué ocurre cuando los sellos se superponen?

¿Puedo mezclar diferentes tipos de sellos?

ApplyMultipleStamps acepta matrices que contengan cualquier tipo de estampador. Combine TextStamper, ImageStamper, HTMLStamper y BarcodeStamper en una sola operación. Cree diseños de documentos complejos con encabezados, pies de página, marcas de agua y códigos de identificación simultáneamente.


¿Cómo controlo la ubicación de los sellos?

Defina la colocación de los sellos utilizando una cuadrícula de 3x3 con tres columnas horizontales y tres filas verticales. Elija la alineación horizontal: izquierda, centro, derecha. Elija la alineación vertical: superior, central, inferior. Ajuste las compensaciones horizontales y verticales para un posicionamiento preciso. Véase la siguiente imagen para una representación visual.

Tabla de alineación de IronPDF Stamping API con opciones de posicionamiento horizontal/vertical y ejemplos de desplazamiento

¿Cuáles son las principales propiedades de posicionamiento?

  • HorizontalAlignment: Alineación horizontal relativa a la página. Predeterminado: HorizontalAlignment.Center.
  • VerticalAlignment: Alineación vertical relativa a la página. Predeterminado: VerticalAlignment.Middle.
  • HorizontalOffset: Desplazamiento horizontal. Predeterminado: 0, unidad: MeasurementUnit.Percentage. Valores positivos desplazados a la derecha, valores negativos desplazados a la izquierda.
  • VerticalOffset: Desplazamiento vertical. Predeterminado: 0, unidad: MeasurementUnit.Percentage. Los valores positivos se desplazan hacia abajo y los negativos hacia arriba.

¿Cómo puedo establecer desplazamientos precisos?

Especifique HorizontalOffset y VerticalOffset utilizando la clase Length. La unidad de medida por defecto es el porcentaje. Las unidades disponibles son pulgadas, milímetros, centímetros, píxeles y puntos. Esto permite un posicionamiento preciso, como establecer márgenes personalizados en documentos PDF.

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),
};
$vbLabelText   $csharpLabel

¿Cómo sellar contenido HTML?

Utilice la clase HtmlStamper para estampar texto e imágenes. HtmlStamper renderiza diseños HTML con estilo CSS y luego los estampa en documentos PDF. La propiedad HtmlBaseUrl especifica la URL base para activos de cadenas HTML como archivos CSS y de imagen. Se utiliza el mismo motor de renderizado que convertir HTML a PDF.

Código

: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");
$vbLabelText   $csharpLabel

¿Cuáles son las propiedades esenciales de HTML Stamper?

  • Html: Fragmento HTML para estampar en tu PDF. Las referencias externas a JavaScript, CSS e imágenes son relativas a HtmlBaseUrl.
  • HtmlBaseUrl: URL base para referencias de archivos CSS, JavaScript e imágenes externos.
  • CssMediaType: Habilita los estilos CSS Media="screen". La configuración AllowScreenCss=false renderiza los sellos usando CSS media="print". Predeterminado: PdfCssMediaType.Screen.

¿Por qué usar HTML Stamper en lugar de Text Stamper?

HTMLStamper ofrece compatibilidad total con HTML y CSS para diseños complejos, múltiples fuentes, colores e imágenes incrustadas en un solo sello. Ideal para marcas de agua o encabezados con contenido enriquecido. Mantiene la coherencia de la marca y trabaja con diseños CSS responsivos.


¿Cómo estampar códigos de barras?

La clase BarcodeStamper estampa códigos de barras directamente en documentos PDF existentes. Admite los tipos de código de barras QRCode, Code128 y Code39.

Código

: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");
$vbLabelText   $csharpLabel

¿Qué opciones de configuración existen para los BarCodes?

  • Value: Valor de cadena del código de barras.
  • BarcodeType: Tipo de codificación compatible con QRCode, Code128 y Code39. Valor predeterminado: QRCode.
  • Width: Ancho del código de barras renderizado en píxeles. Predeterminado: 250px.
  • Height: Altura del código de barras renderizado en píxeles. Predeterminado: 250px.

¿Cuándo debo utilizar cada tipo de código de barras?

QRCode maneja URL y grandes conjuntos de datos (hasta 4.296 caracteres alfanuméricos). Code128 se adapta a datos alfanuméricos con requisitos de alta densidad. Code39 funciona para combinaciones simples de números o letras mayúsculas. Tenga en cuenta la compatibilidad de los equipos de escaneado a la hora de seleccionar los tipos de códigos de barras.


¿Qué otras opciones de Stamper hay disponibles?

Estas propiedades proporcionan un control preciso sobre la apariencia y el comportamiento de los sellos, similar a crear marcas de agua personalizadas.

¿Cómo controlo la apariencia de los sellos?

  • Opacity: Controla la transparencia. 0 es invisible, 100 es opaco.
  • Rotation: Gira el sello en el sentido de las agujas del reloj de 0 a 360 grados.
  • MaxWidth: Ancho máximo del sello de salida.
  • MaxHeight: Altura máxima del sello de salida.
  • MinWidth: Ancho mínimo del sello de salida.
  • MinHeight: Altura mínima del sello de salida.
  • Hyperlink: Agrega un hipervínculo al hacer clic a los elementos estampados. Nota: Los enlaces HTML (etiquetas a) no se conservan al estamparlos.
  • Scale: Aplica escala de porcentaje a los sellos. Predeterminado: 100 (sin efecto).
  • IsStampBehindContent: Coloca un sello detrás del contenido. El sello puede ser invisible si el contenido es opaco.
  • WaitFor: Espera eventos o tiempo. Consulte el uso de WaitFor para retrasar la renderización de PDF .
  • Timeout: Tiempo de espera de renderizado en segundos. Predeterminado: 60.

¿Cuáles son las propiedades más utilizadas?

Opacity y IsStampBehindContent crean marcas de agua. Scale y Rotation ajustan el posicionamiento y el tamaño visual. Ejemplo:

// 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
};
$vbLabelText   $csharpLabel

Resumen

La funcionalidad de estampado de IronPDF añade texto, imágenes, contenido HTML y códigos de barras a documentos PDF existentes. Cuatro clases especializadas de estampadores con amplias opciones de personalización crean documentos profesionales con marcas de agua, encabezados, pies de página y anotaciones. El sistema de posicionamiento con varias unidades de medida y opciones de alineación garantiza una colocación perfecta de los píxeles. Utilice sellos de texto sencillos o diseños HTML complejos con estilo CSS. La API de estampado de IronPDF ofrece flexibilidad y control para la manipulación de PDF de nivel empresarial.

Preguntas Frecuentes

¿Cómo añado una marca de agua de texto a mis documentos PDF en C#?

Utilice la clase TextStamper de IronPDF para añadir marcas de agua de texto. Cree un objeto TextStamper, establezca propiedades como Text, FontSize y Opacity y, a continuación, utilice el método ApplyStamp. Puede posicionar las marcas de agua utilizando las propiedades VerticalAlignment y HorizontalAlignment para una colocación precisa.

¿Puedo añadir imágenes como sellos a archivos PDF existentes?

Sí, IronPDF proporciona la clase ImageStamper para añadir imágenes a los PDF. Cree un objeto ImageStamper, especifique el archivo de imagen y utilice el método ApplyStamp. Puede controlar el posicionamiento y especificar qué páginas estampar utilizando la indexación de páginas basada en cero.

¿Qué tipo de contenido se puede estampar en los PDF?

IronPDF admite cuatro tipos de sellos: TextStamper para anotaciones de texto y marcas de agua, ImageStamper para imágenes, HTMLStamper para contenido HTML con estilo CSS completo, y BarcodeStamper para códigos de barras. Cada clase de sello ofrece un control preciso de la posición.

¿Cómo puedo crear sellos de texto multilínea?

Utilice la etiqueta
dentro de la propiedad Text de TextStamper para crear sellos de varias líneas. Por ejemplo, 'línea 1
línea 2' mostrará texto en dos líneas separadas, perfecto para crear sellos de dirección o marcas de agua multilínea.

¿Puedo utilizar fuentes personalizadas para estampar texto en los PDF?

Sí, TextStamper en IronPDF admite tanto fuentes del sistema como Google Fonts. Establezca la propiedad UseGoogleFont en true para utilizar Google Fonts, o especifique cualquier fuente del sistema instalada utilizando la propiedad FontFamily para un control tipográfico completo.

¿Es posible añadir sellos sólo a determinadas páginas?

Por supuesto. El método ApplyStamp acepta un parámetro de índice de página que le permite estampar páginas específicas. IronPDF utiliza la indexación basada en cero, por lo que la página 1 es el índice 0. También puede utilizar ApplyMultipleStamps para añadir sellos a varias páginas a la vez.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 17,803,474 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPdf
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.