Como adicionar carimbos e marcas d'água a PDFs em C#

Como Editar PDF: Inserir Texto e Imagem com C# e IronPDF

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

O IronPDF permite editar PDFs inserindo texto, imagens, conteúdo HTML e códigos de barras em documentos existentes em C# usando as classes TextStamper, ImageStamper, HTMLStamper e BarcodeStamper com controle preciso de posicionamento.

A função de carimbo sobrepõe conteúdo adicional a documentos PDF existentes. Os carimbos adicionam informações, etiquetas, marcas d'água ou anotações a arquivos PDF. Utilize carimbos para adicionar cabeçalhos e rodapés ou criar marcas d'água personalizadas com os recursos abrangentes de carimbo do IronPDF.

IronPDF fornece quatro carimbos: TextStamper, ImageStamper, HTMLStamper e BarcodeStamper. HTMLStamper utiliza todos os recursos HTML com estilo CSS, semelhante à conversão de strings HTML em PDF .

Início Rápido: Edite PDFs Adicionando Texto Instantaneamente

Use a classe TextStamper do IronPDF para adicionar anotações de texto, marcas d'água ou rótulos a documentos PDF. O exemplo abaixo demonstra como inserir texto em um PDF usando o método ApplyStamp.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho 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. Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita

    arrow pointer


Como faço para inserir texto em PDFs?

Crie um objeto TextStamper contendo todas as configurações de exibição. Passe o objeto TextStamper para o método ApplyStamp. A propriedade Text define o texto exibido. Configure a família da fonte, o estilo da fonte e a localização do carimbo.

TextStamper oferece amplas opções de personalização, semelhantes ao gerenciamento de fontes em documentos PDF. Use fontes do sistema ou fontes do Google definindo UseGoogleFont como verdadeiro.

: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

Qual é a aparência do PDF gerado?

Como posso criar carimbos de texto com várias linhas?

Use a tag <br> para texto com várias linhas em TextStamper. Por exemplo, "linha 1
A opção "linha 2" produz "linha 1" na primeira linha e "linha 2" na segunda linha. Isso cria carimbos de endereço ou marcas d'água com várias linhas.


Como faço para inserir imagens em PDFs?

Crie um objeto ImageStamper e use o método ApplyStamp para aplicar imagens aos documentos. O segundo parâmetro do método aceita um índice de página para carimbar uma ou várias páginas. O exemplo abaixo insere a imagem na página 1 do PDF.

PontasTodos os índices de página seguem a indexação baseada em zero.

Para operações complexas com imagens, explore a adição de imagens a PDFs ou o trabalho com imagens codificadas em 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")
$vbLabelText   $csharpLabel

Qual é a aparência da imagem gerada pelo recurso "Image Stamp"?

Quais formatos de imagem são suportados?

ImageStamper suporta PNG, JPEG, GIF e SVG através de referências URI ou caminhos de arquivo. Garanta a conectividade de rede adequada para imagens remotas. Para ambientes Azure, considere usar imagens do Armazenamento de Blobs do Azure .


Como posso aplicar vários selos?

Use ApplyMultipleStamps para aplicar vários carimbos passando uma matriz de carimbos. Este método processa vários selos de forma eficiente em uma única operação.

: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

O que acontece quando os selos se sobrepõem?

Posso misturar diferentes tipos de carimbos?

ApplyMultipleStamps aceita arrays contendo quaisquer tipos de carimbo. Combine TextStamper, ImageStamper, HTMLStamper e BarcodeStamper em uma única operação. Crie layouts de documentos complexos com cabeçalhos, rodapés, marcas d'água e códigos de identificação simultaneamente.


Como faço para controlar a localização do carimbo?

Defina o posicionamento dos carimbos usando uma grade 3x3 com três colunas horizontais e três linhas verticais. Escolha o alinhamento horizontal: esquerda, centro, direita. Escolha o alinhamento vertical: superior, central ou inferior. Ajuste os deslocamentos horizontais e verticais para um posicionamento preciso. Veja a imagem abaixo para uma representação visual.

Grade de alinhamento da API de estampagem do IronPDF mostrando opções de posicionamento horizontal/vertical e exemplos de deslocamento.

Quais são as principais propriedades de posicionamento?

  • HorizontalAlignment: Alinhamento horizontal em relação à página. Padrão: HorizontalAlignment.Center.
  • VerticalAlignment: Alinhamento vertical em relação à página. Padrão: VerticalAlignment.Middle.
  • HorizontalOffset: Deslocamento horizontal. Padrão: 0, unidade: MeasurementUnit.Percentage. Valores positivos deslocam-se para a direita, valores negativos deslocam-se para a esquerda.
  • VerticalOffset: Deslocamento vertical. Padrão: 0, unidade: MeasurementUnit.Percentage. Valores positivos são deslocados para baixo, valores negativos são deslocados para cima.

Como faço para definir deslocamentos precisos?

Especifique HorizontalOffset e VerticalOffset usando a classe Length. A unidade de medida padrão é a porcentagem. As unidades disponíveis incluem polegadas, milímetros, centímetros, pixels e pontos. Isso permite um posicionamento preciso, como definir margens personalizadas em 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),
};
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

Como faço para carimbar conteúdo HTML?

Use a classe HtmlStamper para carimbar texto e imagens. HtmlStamper renderiza designs HTML com estilo CSS e, em seguida, os aplica a documentos PDF. A propriedade HtmlBaseUrl especifica a URL base para recursos de string HTML, como arquivos CSS e de imagem. Este processo utiliza o mesmo mecanismo de renderização que a conversão de HTML para 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");
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

Quais são as propriedades essenciais do HTML Stamper?

  • Html: Fragmento HTML para inserir no seu PDF. Referências externas a JavaScript, CSS e imagens são relativas a HtmlBaseUrl.
  • HtmlBaseUrl: URL base para referências externas de arquivos CSS, JavaScript e de imagem.
  • CssMediaType: Ativa os estilos CSS "Media" screen. A configuração AllowScreenCss=false renderiza carimbos usando CSS media="print". Padrão: PdfCssMediaType.Screen.

Por que usar o carimbo HTML em vez do carimbo de texto?

HTMLStamper oferece suporte completo a HTML e CSS para layouts complexos, múltiplas fontes, cores e imagens incorporadas em um único carimbo. Ideal para marcas d'água ou cabeçalhos com conteúdo rico. Mantém uma identidade visual consistente e trabalha com designs CSS responsivos .


Como faço para carimbar códigos de barras?

A classe BarcodeStamper imprime códigos de barras diretamente em documentos PDF existentes. Compatível com os tipos de código de barras QRCode, Code128 e 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");
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

Quais opções de configuração estão disponíveis para códigos de barras?

  • Value: Valor da string do código de barras.
  • BarcodeType: Tipo de codificação compatível com QRCode, Code128 e Code39. Padrão: QRCode.
  • Width: Largura do código de barras renderizado em pixels. Padrão: 250px.
  • Height: Altura do código de barras renderizado em pixels. Padrão: 250px.

Quando devo usar cada tipo de código de barras?

O QRCode processa URLs e grandes conjuntos de dados (até 4.296 caracteres alfanuméricos). Code128 é adequado para dados alfanuméricos com requisitos de alta densidade. Code39 funciona para combinações simples de números ou letras maiúsculas. Ao selecionar os tipos de código de barras, leve em consideração a compatibilidade com o equipamento de leitura.


Quais opções adicionais de carimbo estão disponíveis?

Essas propriedades proporcionam um controle preciso sobre a aparência e o comportamento do carimbo, semelhante à criação de marcas d'água personalizadas .

Como controlar a aparência do carimbo?

Quais propriedades são mais comumente usadas?

Opacity e IsStampBehindContent criam marcas d'água. Scale e Rotation ajustam o posicionamento e o tamanho visual. Exemplo:

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

Resumo

A funcionalidade de carimbo do IronPDF adiciona texto, imagens, conteúdo HTML e códigos de barras a documentos PDF existentes. Quatro classes de carimbos especializados, com amplas opções de personalização, criam documentos profissionais com marcas d'água, cabeçalhos, rodapés e anotações. O sistema de posicionamento com diversas unidades de medida e opções de alinhamento garante um posicionamento perfeito em cada pixel. Utilize carimbos de texto simples ou layouts HTML complexos com estilização CSS. A API de carimbo do IronPDF oferece flexibilidade e controle para manipulação de PDFs em nível empresarial.

Perguntas frequentes

Como adiciono uma marca d'água de texto aos meus documentos PDF em C#?

Use a classe TextStamper do IronPDF para adicionar marcas d'água de texto. Crie um objeto TextStamper, defina propriedades como Text, FontSize e Opacity e, em seguida, use o método ApplyStamp. Você pode posicionar as marcas d'água usando as propriedades VerticalAlignment e HorizontalAlignment para um posicionamento preciso.

Posso adicionar imagens como carimbos a arquivos PDF existentes?

Sim, o IronPDF fornece a classe ImageStamper para adicionar imagens a PDFs. Crie um objeto ImageStamper, especifique o arquivo de imagem e use o método ApplyStamp. Você pode controlar o posicionamento e especificar quais páginas devem ser carimbadas usando indexação de página baseada em zero.

Que tipos de conteúdo podem ser impressos em PDFs?

O IronPDF suporta quatro tipos de carimbos: TextStamper para anotações de texto e marcas d'água, ImageStamper para imagens, HTMLStamper para conteúdo HTML com formatação CSS completa e BarcodeStamper para códigos de barras. Cada classe de carimbo oferece controle preciso de posicionamento.

Como faço para criar carimbos de texto com várias linhas?

Use o
Use a tag dentro da propriedade Text do TextStamper para criar carimbos de várias linhas. Por exemplo, 'linha 1
A opção 'linha 2' exibirá o texto em duas linhas separadas, perfeita para criar carimbos de endereço ou marcas d'água com várias linhas.

Posso usar fontes personalizadas ao inserir texto em PDFs?

Sim, o TextStamper no IronPDF suporta fontes do sistema e fontes do Google. Defina a propriedade UseGoogleFont como true para usar as fontes do Google ou especifique qualquer fonte instalada no sistema usando a propriedade FontFamily para controle total da tipografia.

É possível adicionar selos apenas a páginas específicas?

Com certeza. O método ApplyStamp aceita um parâmetro de índice de página que permite adicionar carimbos a páginas específicas. O IronPDF usa indexação baseada em zero, então a página 1 tem índice 0. Você também pode usar ApplyMultipleStamps para adicionar carimbos a várias páginas de uma só vez.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 18,318,263 | Versão: 2026.4 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.