Cómo dibujar texto y mapa de bits en PDFs en C#

Cómo Dibujar Texto y Mapa de Bits en PDFs usando C#

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

IronPDF permite dibujar texto e imágenes en PDF existentes mediante los métodos DrawText y DrawBitmap, lo que permite la personalización con marcas de agua, logotipos, anotaciones y una apariencia visual mejorada sin alterar el contenido original.

Dibujar texto e imágenes en un PDF implica añadir contenido a un documento existente. IronPDF habilita esta función sin problemas. Al incorporar texto e imágenes, puede personalizar los PDF con marcas de agua, logotipos y anotaciones, mejorando el aspecto visual y la imagen de marca del documento. Además, el texto y las imágenes facilitan la presentación de la información, la visualización de datos y la creación de formularios interactivos.

como-título:2(Inicio rápido: Añadir Texto e Imágenes a PDFs con IronPDF)

Empiece a mejorar sus documentos PDF con texto e imágenes de forma rápida y eficaz. Los métodos DrawText y DrawBitmap permiten personalizar fácilmente los PDF añadiendo marcas de agua, logotipos o anotaciones. Este ejemplo muestra cómo dibujar texto en coordenadas específicas e insertar una imagen sin problemas en el PDF.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronPDF con el gestor de paquetes NuGet

    PM > Install-Package IronPdf

  2. Copie y ejecute este fragmento 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. Despliegue para probar en su entorno real

    Empieza a utilizar IronPDF en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer


¿Cómo puedo dibujar texto en un PDF?

El método DrawText disponible en el objeto PdfDocument permite añadir texto a un PDF existente sin alterar su contenido original. Este método es especialmente útil para añadir contenido dinámico a los PDF, similar a la función estampar texto e imagen para superposiciones más complejas.

Comprensión del sistema de coordenadas

Antes de dibujar el texto, comprenda el sistema de coordenadas PDF. El origen (0,0) está situado en la esquina inferior izquierda de la página, con valores X que aumentan hacia la derecha y valores Y que aumentan hacia arriba. Esto difiere de muchos sistemas gráficos en los que el origen está en la parte superior izquierda.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

¿Qué fuentes puedo utilizar?

El método DrawText admite actualmente todas las Fuentes estándar en IronPDF, incluidas Courier, Arial (o Helvetica), TimesNewRoman, Symbol y ZapfDingbats. Visita la sección de 'Fuentes Estándar en IronPDF' en el artículo Administrar Fuentes para variantes en cursiva, negrita y oblicua de estos tipos de fuente.

La fuente ZapfDingbats puede mostrar símbolos como ▲. Para obtener una lista completa de los símbolos compatibles, visite Wikipedia on Zapf Dingbats.

Muestra de fuentes de salida en PDF

Muestras de fuentes de las familias Arial, Courier, Helvetica y Times New Roman con variaciones de negrita, cursiva y oblicua

¿Cómo puedo añadir texto con saltos de línea?

La acción de dibujar texto admite caracteres de nueva línea, permitiéndote renderizar texto con nuevas líneas incorporadas para mejorar el formato y la claridad visual. Esto resulta útil a la hora de añadir anotaciones multilínea o crear diseños de texto estructurados.

Para lograrlo, añade caracteres de nueva línea (\n) a la cadena de texto. Utilizando el ejemplo anterior:

// 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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

¿Cómo se utilizan las fuentes personalizadas?

Las fuentes personalizadas son compatibles con el método DrawText, lo que amplía las opciones tipográficas más allá de las fuentes estándar. Esta característica es esencial a la hora de mantener la coherencia de la marca o trabajar con fuentes especializadas. Para una gestión avanzada de las fuentes, consulte nuestra guía sobre gestión de fuentes en PDF.

A continuación se muestra un ejemplo con la fuente Pixelify Sans Font añadida para el 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

Posicionamiento avanzado del texto

A la hora de situar el texto con precisión, tenga en cuenta estos consejos:

  • Dimensiones de página: Utilice pdf.Pages[pageIndex].Width y pdf.Pages[pageIndex].Height para obtener las dimensiones de la página
  • Rotación: El parámetro de rotación acepta grados (0-360) para texto en ángulo
  • Opciones de color: Más allá de los colores básicos, utilice valores RGB: Color.FromArgb(255, 100, 100)

¿Cómo puedo dibujar imágenes en PDF?

El método DrawBitmap de IronPDF permite añadir mapas de bits a documentos PDF existentes. Este método funciona de forma similar a la función Image Stamper, que permite estampar imágenes en PDF existentes. Para necesidades complejas de manipulación de imágenes, explore nuestra guía sobre añadir imágenes a PDF.

Por favor notaEl método DrawBitmap funciona mejor con imágenes grandes. Al utilizar imágenes de menor resolución, puede encontrarse con la siguiente excepción: IronPdf.Exceptions.IronPdfNativeException: 'Error al dibujar la imagen: la longitud de los datos (567000) es inferior a la esperada (756000)'. Para superar este problema, utilice el estampador de imágenes, que maneja imágenes de todos los tamaños.

Imagen de muestra

Logotipo de Iron Software con un colorido diseño geométrico 3D entrelazado sobre un fondo de marca

¿Cómo es la implementación?

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Resultado PDF

¿Qué parámetros adicionales hay disponibles?

  • PixelFormat: La propiedad PixelFormat especifica el formato de datos de color para el mapa de bits, controlando principalmente el soporte de transparencia. El valor por defecto es Format32bppArgb. Elija entre los formatos de enum de píxeles Format32bppRgb y Format32bppArgb pasando el parámetro como opción. Esto es útil cuando se trabaja con elementos fondo y primer plano en PDF.

  • IgnorePageRotation: Esta propiedad bool determina si el método ignora la rotación de la página al dibujar el mapa de bits. Por defecto, el valor es false. Especialmente útil a la hora de aplicar marcas de agua de forma coherente a todas las páginas, independientemente de la rotación.

Casos de uso comunes y mejores prácticas

A la hora de dibujar texto e imágenes en PDF, tenga en cuenta estas aplicaciones prácticas:

  1. Marcas de agua dinámicas: Añade logotipos de empresa o sellos "CONFIDENCIAL" a documentos confidenciales
  2. Numeración de páginas: Dibuje los números de página en posiciones coherentes en todas las páginas
  3. Colocación de firmas: Añade imágenes de firmas en los lugares designados de los formularios
  4. Mejora de encabezados/pies de página: Complemente los encabezados existentes con contenido dinámico

Para depurar y supervisar las operaciones de PDF, implemente registro personalizado para realizar un seguimiento de las operaciones de dibujo y garantizar su correcta ejecución.

Consideraciones sobre el rendimiento

Al trabajar con varias páginas o documentos de gran tamaño:

  • Operaciones por lotes cuando sea posible para minimizar el uso de memoria
  • Desechar objetos de mapa de bits tras su uso para liberar recursos
  • Considere la posibilidad de cargar previamente las imágenes de uso frecuente para mejorar el rendimiento

¿Listo para ver qué más puedes hacer? Consulte nuestra página de tutoriales aquí: Editar PDFs

Preguntas Frecuentes

¿Qué métodos puedo utilizar para añadir texto e imágenes a los PDF existentes?

IronPDF proporciona dos métodos principales para añadir contenido a los PDF existentes: el método DrawText para añadir texto y el método DrawBitmap para añadir imágenes. Estos métodos permiten personalizar los PDF con marcas de agua, logotipos y anotaciones sin alterar el contenido del documento original.

¿Cómo funciona el sistema de coordenadas PDF al dibujar texto?

En IronPDF, el sistema de coordenadas PDF tiene su origen (0,0) en la esquina inferior izquierda de la página. Los valores X aumentan hacia la derecha y los valores Y aumentan hacia arriba. Esto difiere de muchos sistemas gráficos en los que el origen está en la esquina superior izquierda.

¿Qué fuentes son compatibles para dibujar texto en PDF?

El método DrawText de IronPDF admite todas las fuentes estándar, incluidas Courier, Arial (Helvetica), Times New Roman, Symbol y ZapfDingbats. Estas fuentes también están disponibles en cursiva, negrita y oblicua. La fuente ZapfDingbats puede utilizarse para mostrar símbolos especiales.

¿Puedo añadir texto e imágenes a un PDF en una sola operación?

Sí, IronPDF permite encadenar métodos. Puede utilizar ChromePdfRenderer para crear un PDF y, a continuación, aplicar los métodos DrawText y DrawBitmap de forma secuencial en una sola línea de código, lo que hace que sea eficaz añadir varios elementos a su documento PDF.

¿Cuáles son los casos de uso habituales para dibujar texto e imágenes en PDF?

Las funciones de dibujo de IronPDF se utilizan habitualmente para añadir marcas de agua para proteger documentos, insertar logotipos de empresa para la marca, crear anotaciones para la revisión de documentos, mejorar el aspecto visual, facilitar la visualización de datos y crear formularios interactivos.

Chaknith Bin
Ingeniero de Software
Chaknith trabaja en IronXL e IronBarcode. Tiene un profundo conocimiento en C# y .NET, ayudando a mejorar el software y apoyar a los clientes. Sus conocimientos derivados de las interacciones con los usuarios contribuyen a mejores productos, documentación y experiencia en general.
¿Listo para empezar?
Nuget Descargas 16,685,821 | Versión: 2025.12 recién lanzado