Como desenhar texto e bitmaps em PDFs usando C#

Como desenhar texto e bitmaps em PDFs usando C

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

O IronPDF permite desenhar texto e imagens em PDFs existentes usando os métodos DrawText e DrawBitmap, possibilitando a personalização com marcas d'água, logotipos, anotações e melhoria da aparência visual sem alterar o conteúdo original.

Desenhar texto e imagens em um PDF envolve adicionar conteúdo a um documento existente. O IronPDF permite essa funcionalidade de forma integrada. Ao incorporar texto e imagens, você pode personalizar PDFs com marcas d'água , logotipos e anotações , melhorando a aparência visual e a identidade visual do documento. Além disso, texto e imagens facilitam a apresentação de informações, a visualização de dados e a criação de formulários interativos.

Início rápido: Adicione texto e imagens a PDFs com o IronPDF

Comece a aprimorar seus documentos PDF com texto e imagens de forma rápida e eficiente. Utilizando os métodos DrawText e DrawBitmap, você pode personalizar PDFs facilmente adicionando marcas d'água, logotipos ou anotações. Este exemplo demonstra como desenhar texto em coordenadas específicas e inserir uma imagem perfeitamente no seu PDF.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho de código.

    new ChromePdfRenderer()
        .RenderHtmlAsPdf("<h1>Doc</h1>")
        .DrawText("Hello World", FontTypes.TimesNewRoman.Name, 12, 0, 100, 100, Color.Black, 0)
        .DrawBitmap(AnyBitmap.FromFile("logo.png"), 0, 50, 250, 500, 300)
        .SaveAs("annotated.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 desenhar texto em um PDF?

O método DrawText disponível no objeto PdfDocument permite adicionar texto a um PDF existente sem alterar seu conteúdo original. Este método é particularmente útil para adicionar conteúdo dinâmico a PDFs, semelhante à funcionalidade de carimbo de texto e imagem para sobreposições mais complexas.

Entendendo o Sistema de Coordenadas

Antes de desenhar o texto, entenda o sistema de coordenadas do PDF. A origem (0,0) está localizada no canto inferior esquerdo da página, com os valores de X aumentando para a direita e os valores de Y aumentando para cima. Isso difere de muitos sistemas gráficos onde a origem está no canto superior esquerdo.

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-text.cs
using IronPdf;
using IronSoftware.Drawing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 100, Color.Black, Rotation: 0);

pdf.SaveAs("drawText.pdf");
Imports IronPdf
Imports IronSoftware.Drawing

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize:=12, PageIndex:=0, X:=100, Y:=100, Color.Black, Rotation:=0)

pdf.SaveAs("drawText.pdf")
$vbLabelText   $csharpLabel

Que fontes posso usar?

O método DrawText atualmente suporta todas as fontes padrão no IronPDF , incluindo Courier, Arial (ou Helvetica), TimesNewRoman, Symbol e ZapfDingbats. Visite a seção ' Fontes padrão no IronPDF ' no artigo Gerenciar fontes para obter variantes em itálico, negrito e oblíquo desses tipos de fonte.

A fonte ZapfDingbats pode exibir símbolos como ▲. Para obter uma lista completa dos símbolos suportados, visite a página da Wikipédia sobre Zapf Dingbats .

Exemplo de fontes de saída em PDF

Exemplos de fontes mostrando as famílias Arial, Courier, Helvetica e Times New Roman com variações em negrito, itálico e oblíquo.

Como posso adicionar texto com quebras de linha?

A ação de desenhar texto suporta caracteres de nova linha, permitindo renderizar texto com novas linhas integradas para melhor formatação e clareza visual. Isso é útil ao adicionar anotações de várias linhas ou ao criar layouts de texto estruturados.

Para conseguir isso, adicione newline characters (\n) à sequência de texto. Usando o exemplo acima:

// Multi-line text example with proper spacing
string textWithNewlines = "Some text\nSecond line\nThird line with more content";
pdfDoc.DrawText(textWithNewlines, font, position);

// You can also use Environment.NewLine for platform-specific line breaks
string platformText = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
pdfDoc.DrawText(platformText, font, position);
// Multi-line text example with proper spacing
string textWithNewlines = "Some text\nSecond line\nThird line with more content";
pdfDoc.DrawText(textWithNewlines, font, position);

// You can also use Environment.NewLine for platform-specific line breaks
string platformText = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
pdfDoc.DrawText(platformText, font, position);
' Multi-line text example with proper spacing
Dim textWithNewlines As String = "Some text" & vbLf & "Second line" & vbLf & "Third line with more content"
pdfDoc.DrawText(textWithNewlines, font, position)

' You can also use Environment.NewLine for platform-specific line breaks
Dim platformText As String = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3"
pdfDoc.DrawText(platformText, font, position)
$vbLabelText   $csharpLabel

Como faço para usar fontes personalizadas?

Fontes personalizadas são suportadas com o método DrawText, expandindo suas opções tipográficas além das fontes padrão. Essa funcionalidade é essencial para manter a consistência da marca ou trabalhar com fontes especializadas. Para gerenciamento avançado de fontes, consulte nosso guia sobre como gerenciar fontes em PDFs.

Abaixo, um exemplo com a fonte Pixelify Sans adicionada ao texto:

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-custom-font.cs
using IronPdf;
using IronSoftware.Drawing;
using System.IO;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Add custom font to the PDF
byte[] fontByte = File.ReadAllBytes(@".\PixelifySans-VariableFont_wght.ttf");
var addedFont = pdf.Fonts.Add(fontByte);

// Draw text on PDF
pdf.DrawText("Iron Software", addedFont.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 600, Color.Black, Rotation: 0);

pdf.SaveAs("drawCustomFont.pdf");
Imports IronPdf
Imports IronSoftware.Drawing
Imports System.IO

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Add custom font to the PDF
Private fontByte() As Byte = File.ReadAllBytes(".\PixelifySans-VariableFont_wght.ttf")
Private addedFont = pdf.Fonts.Add(fontByte)

' Draw text on PDF
pdf.DrawText("Iron Software", addedFont.Name, FontSize:= 12, PageIndex:= 0, X:= 100, Y:= 600, Color.Black, Rotation:= 0)

pdf.SaveAs("drawCustomFont.pdf")
$vbLabelText   $csharpLabel

Posicionamento de texto avançado

Ao posicionar o texto com precisão, considere estas dicas:

  • Dimensões da página : Use pdf.Pages[pageIndex].Width e pdf.Pages[pageIndex].Height para obter as dimensões da página.
  • Rotação : O parâmetro de rotação aceita graus (0-360) para texto inclinado.
  • Opções de cores : Além das cores básicas, use os valores RGB: Color.FromArgb(255, 100, 100)

Como faço para desenhar imagens em um PDF?

O método DrawBitmap do IronPDF permite adicionar bitmaps a documentos PDF existentes. Este método funciona de forma semelhante à funcionalidade "Carimbo de Imagem", permitindo que você carimbe imagens em PDFs existentes. Para necessidades complexas de manipulação de imagens, explore nosso guia sobre como adicionar imagens a PDFs .

ObserveO método DrawBitmap funciona melhor com imagens grandes. Ao usar imagens com resolução menor, você pode encontrar a seguinte exceção: IronPDF: 'Erro ao desenhar a imagem: o comprimento dos dados (567000) é menor que o esperado (756000)'. Para contornar esse problema, use o Image Stamper, que lida com imagens de todos os tamanhos.

Imagem de exemplo

Logotipo da Iron Software com design geométrico 3D colorido e entrelaçado sobre fundo personalizado.

Como será a implementação?

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-bitmap.cs
using IronPdf;
using IronSoftware.Drawing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Open the image from file
AnyBitmap bitmap = AnyBitmap.FromFile("ironSoftware.png");

// Draw the bitmp on PDF
pdf.DrawBitmap(bitmap, 0, 50, 250, 500, 300);

pdf.SaveAs("drawImage.pdf");
Imports IronPdf
Imports IronSoftware.Drawing

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Open the image from file
Dim bitmap As AnyBitmap = AnyBitmap.FromFile("ironSoftware.png")

' Draw the bitmap on PDF
pdf.DrawBitmap(bitmap, 0, 50, 250, 500, 300)

pdf.SaveAs("drawImage.pdf")
$vbLabelText   $csharpLabel

PDF de saída

Quais parâmetros adicionais estão disponíveis?

  • PixelFormat : A propriedade PixelFormat especifica o formato dos dados de cor para o bitmap, controlando principalmente o suporte à transparência. O valor padrão é Format32bppArgb. Escolha entre os formatos de enumeração de pixels Format32bppRgb e Format32bppArgb passando o parâmetro como uma opção. Isso é útil ao trabalhar com elementos de fundo e de primeiro plano em PDFs.

  • IgnorePageRotation : Esta propriedade bool determina se o método ignora a rotação da página ao desenhar o bitmap. Por padrão, o valor é falso. Especialmente útil ao aplicar marcas d'água de forma consistente em todas as páginas, independentemente da rotação.

Casos de uso comuns e melhores práticas

Ao desenhar texto e imagens em PDFs, considere estas aplicações práticas:

  1. Marca d'água dinâmica : Adicione logotipos da empresa ou selos "CONFIDENCIAL" a documentos confidenciais.
  2. Numeração de Páginas : Desenhe os números de página em posições consistentes em todas as páginas.
  3. Posicionamento da assinatura : Adicione imagens de assinatura nos locais designados nos formulários.
  4. Aprimoramento de cabeçalho/rodapé : Complemente os cabeçalhos existentes com conteúdo dinâmico.

Para depurar e monitorar operações em PDF, implemente um registro personalizado para rastrear as operações de desenho e garantir a execução correta.

Considerações sobre o desempenho

Ao trabalhar com várias páginas ou documentos grandes:

  • Realizar operações em lote sempre que possível para minimizar o uso de memória.
  • Descartar objetos bitmap após o uso para liberar recursos
  • Considere pré-carregar imagens usadas com frequência para melhorar o desempenho.

Pronto para ver o que mais você pode fazer? Confira nossa página de tutoriais aqui: Como editar PDF em C#

Perguntas frequentes

Quais métodos posso usar para adicionar texto e imagens a PDFs existentes?

O IronPDF oferece dois métodos principais para adicionar conteúdo a PDFs existentes: o método DrawText para adicionar texto e o método DrawBitmap para adicionar imagens. Esses métodos permitem personalizar PDFs com marcas d'água, logotipos e anotações sem alterar o conteúdo original do documento.

Como funciona o sistema de coordenadas do PDF ao desenhar texto?

No IronPDF, o sistema de coordenadas do PDF tem sua origem (0,0) no canto inferior esquerdo da página. Os valores de X aumentam movendo-se para a direita e os valores de Y aumentam movendo-se para cima. Isso difere de muitos sistemas gráficos onde a origem está no canto superior esquerdo.

Quais fontes são suportadas ao desenhar texto em PDFs?

O método DrawText do IronPDF suporta todas as fontes padrão, incluindo Courier, Arial (Helvetica), Times New Roman, Symbol e ZapfDingbats. Essas fontes também estão disponíveis nas versões itálica, negrito e oblíqua. A fonte ZapfDingbats pode ser usada para exibir símbolos especiais.

Posso adicionar texto e imagens a um PDF em uma única operação?

Sim, o IronPDF permite encadear métodos. Você pode usar o ChromePdfRenderer para criar um PDF e, em seguida, aplicar os métodos DrawText e DrawBitmap sequencialmente em uma única linha de código, tornando eficiente a adição de vários elementos ao seu documento PDF.

Quais são os casos de uso mais comuns para desenhar texto e imagens em PDFs?

Os recursos de desenho do IronPDF são comumente usados para adicionar marcas d'água para proteger documentos, inserir logotipos de empresas para fins de branding, criar anotações para revisão de documentos, melhorar a aparência visual, facilitar a visualização de dados e criar formulários interativos.

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.