IRONSOFTWAREHOME
VIDEOS

Cómo redactar texto y regiones en PDF usando C#

Curtis Chau
Curtis Chau
Updated: 19 de julio de 2026

La migración de PeachPDFa IronPDF proporciona acceso a la generación de PDF de nivel empresarial con funciones completas, desarrollo activo y asistencia profesional. Esta guía proporciona una ruta de migración completa, paso a paso, que transforma su flujo de trabajo básico de HTML a PDF en una solución PDF con todas las funciones, con el moderno renderizado de Chromium, opciones de seguridad avanzadas y amplias capacidades de manipulación.

Por qué migrar de PeachPDFa IronPDF

Entender PeachPDF

PeachPDF es una herramienta relativamente nueva en el ecosistema .NET diseñada para desarrolladores que necesitan convertir HTML a PDF. Como biblioteca, PeachPDFpromete una implementación .NET pura, diferenciándose por no depender de procesos externos, lo que garantiza que pueda integrarse sin problemas en todas las plataformas que admitan .NET. Esta característica posiciona a PeachPDFcomo una opción atractiva para proyectos que buscan una solución de biblioteca ligera y gestionada.

A pesar de su potencial, PeachPDFaún está en fase de desarrollo, lo que pone de manifiesto tanto sus interesantes posibilidades como sus notables limitaciones. PeachPDFsigue siendo atractivo por su núcleo .NET puro, que promete una implantación sencilla en diversos entornos. Sin embargo, esto también se traduce en una adopción limitada, con una base de usuarios más pequeña y un apoyo impulsado por la comunidad.

Las limitaciones de PeachPDF

PeachPDF es una biblioteca PDF relativamente nueva y menos conocida que carece de la madurez, las funciones y la asistencia de las soluciones establecidas. Razones clave para migrar:

  1. Conjunto de funciones limitado: PeachPDFcarece de funciones avanzadas como firmas digitales, compatibilidad con PDF/Ay extracción de texto sofisticada.

  2. Comunidad pequeña: documentación limitada, ejemplos y apoyo de la comunidad. Con una base de usuarios más pequeña, el apoyo de la comunidad puede ser escaso, lo que dificulta la obtención de asistencia o la búsqueda de documentación exhaustiva.

  3. Futuro incierto: Las nuevas bibliotecas sin antecedentes establecidos conllevan riesgos de adopción.

  4. Compatibilidad básica con HTML: capacidades limitadas de representación de CSS y JavaScript.

  5. Sin soporte empresarial: No hay soporte profesional ni opciones de SLA.

Comparación entre PeachPDFe IronPDF

CaracterísticaPeachPDFIronPDF
Implementación.NET puroGestionado con amplia compatibilidad
LicenciaCódigo abierto (BSD-3-Clause)Comercial
Base de usuariosPequeñoGrande (más de 40 millones de descargas)
SoporteDirigido a la comunidadProfessional con soporte dedicado
Representación HTMLBásicoChromium completo
Soporte CSSLimitadoCSS3 completo
JavaScriptBásicoES2024 completo
Firmas digitalesNo
Cumplimiento de PDF/ANo
DocumentaciónLimitadoAmplia
Estado de desarrolloEn desarrolloVersión madura y estable

IronPDF destaca por su amplia funcionalidad, ya que no solo admite conversiones de HTML a PDF, sino también OCR, marcas de agua y otras funciones avanzadas. Su estructura de soporte profesional es una ventaja definitiva, ya que ofrece resoluciones rápidas a los problemas a los que se enfrentan los desarrolladores.

Para los equipos que planifican la adopción de .NET 10 y C# 14 hasta 2025 y 2026,IronPDF ofrece funciones completas y un mantenimiento activo que garantizan la estabilidad y la compatibilidad a largo plazo con los marcos .NET modernos.


Antes de empezar

Prerrequisitos

  1. Entorno .NET : .NET Framework 4.6.2+ o .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Acceso a NuGet : Capacidad para instalar paquetes NuGet
  3. Licencia de IronPDF: Obtenga su clave de licencia en IronPDF

Cambios en el paquete NuGet

# Remove PeachPDF
dotnet remove package PeachPDF

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuración de licencias

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Identificar el uso de PeachPDF

# Audit PeachPDFusage in codebase
grep -r "using PeachPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" .
SHELL

Referencia completa de la API

Cambios en el espacio de nombres

// Before: PeachPDF
using PeachPDF;
using System.IO;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;

Mapeos de API principales

PeachPDFIronPDF
new HtmlToPdfConverter()new ChromePdfRenderer()
converter.Convert(html)renderer.RenderHtmlAsPdf(html)
converter.ConvertUrl(url)renderer.RenderUrlAsPdf(url)
converter.Headerrenderer.RenderingOptions.HtmlHeader
converter.Footerrenderer.RenderingOptions.HtmlFooter
File.WriteAllBytes(path, pdf)pdf.SaveAs(path)
pdf (byte[])pdf.BinaryData
PdfReader.LoadFromFile(path)PdfDocument.FromFile(path)
document.MergeWith(other)PdfDocument.Merge(pdfs)

Ejemplos de migración de código

Ejemplo 1: Conversión de cadenas HTML a PDF

Antes (PeachPDF):

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("output.pdf", pdf);
    }
}

Después (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}

Este ejemplo demuestra la diferencia fundamental entre las dos bibliotecas. PeachPDFusa HtmlToPdfConverter con un método Convert() que devuelve un byte[], requiriendo File.WriteAllBytes() para guardar.IronPDF usa ChromePdfRenderer con RenderHtmlAsPdf() que devuelve un objeto PdfDocument con un método SaveAs() incorporado.

Las principales ventajas del enfoque de IronPDF: el objeto PdfDocument se puede manipular aún más (agregando marcas de agua, fusionándolo, configuraciones de seguridad) antes de guardarlo, mientras que la matriz de bytes de PeachPDFes una salida final. El enfoque de IronPDFofrece una sintaxis más limpia y una mejor integración con las aplicaciones .NET modernas. Consulte la documentación HTML a PDF para ver ejemplos completos.

Ejemplo 2: Conversión de URL a PDF

Antes (PeachPDF):

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var url = "https://www.example.com";
        var pdf = converter.ConvertUrl(url);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}

Después (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var url = "https://www.example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        pdf.SaveAs("webpage.pdf");
    }
}

PeachPDF usa ConvertUrl() mientras que IronPDF usa RenderUrlAsPdf(). La nomenclatura de los métodos en IronPDFes más descriptiva: indica explícitamente que una URL se está convirtiendo en un PDF. Ambas bibliotecas gestionan la conversión de URL a PDF de forma similar, pero el motor Chromium completo de IronPDFproporciona una renderización superior de páginas web modernas con CSS y JavaScriptcomplejos. Más información en nuestros tutoriales.

Ejemplo 3: Añadir encabezados y pies de página

Antes (PeachPDF):

using PeachPDF;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.Header = "<div style='text-align:center'>My Header</div>";
        converter.Footer = "<div style='text-align:center'>Page {page}</div>";
        var html = "<html><body><h1>Document Content</h1></body></html>";
        var pdf = converter.Convert(html);
        File.WriteAllBytes("document.pdf", pdf);
    }
}

Después (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" };
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" };
        var html = "<html><body><h1>Document Content</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("document.pdf");
    }
}

Este ejemplo muestra una diferencia arquitectónica clave. PeachPDFutiliza propiedades de cadena simples (converter.Header y converter.Footer) para encabezados y pies de página.IronPDF utiliza objetos HtmlHeaderFooter asignados a RenderingOptions.HtmlHeader y RenderingOptions.HtmlFooter.

El enfoque IronPDF ofrece mayor flexibilidad: los objetos HtmlHeaderFooter pueden incluir propiedades adicionales como MaxHeight para controlar el tamaño del encabezado/pie de página. Tenga en cuenta que ambas bibliotecas utilizan {page} como marcador de posición del número de página.IronPDF también admite {total-pages} para el recuento total de páginas.

Tenga en cuenta el espacio de nombres adicional requerido para IronPDF: using IronPdf.Rendering; es necesario para la clase HtmlHeaderFooter.


Notas de migración críticas

Cambio de clase de conversor

PeachPDF utiliza HtmlToPdfConverter;IronPDF utiliza ChromePdfRenderer:

// PeachPDF
var converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();

Cambio de tipo de retorno

PeachPDF devuelve byte[];IronPDF devuelve PdfDocument:

// PeachPDF: Returns byte array
byte[] pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);

// IronPDF: Returns PdfDocument object
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or get bytes: byte[] bytes = pdf.BinaryData;

Cambio de propiedad de encabezado/pie

// PeachPDF: Simple string properties
converter.Header = "<div>Header</div>";
converter.Footer = "<div>Footer</div>";

// IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() 
{ 
    HtmlFragment = "<div>Header</div>" 
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() 
{ 
    HtmlFragment = "<div>Footer</div>" 
};

Cambios en los nombres de los métodos

PeachPDFIronPDF
Convert(html)RenderHtmlAsPdf(html)
ConvertUrl(url)RenderUrlAsPdf(url)
File.WriteAllBytes()SaveAs()

Nuevas capacidades tras la migración

Tras migrar a IronPDF, obtendrá funciones que PeachPDFno puede ofrecerle:

Fusión de PDF

var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
C#

Marcas de agua con HTML

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");
pdf.SaveAs("watermarked.pdf");

Protección con contraseña

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");

pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

pdf.SaveAs("protected.pdf");

Firmas digitales

using IronPdf.Signing;

var pdf = PdfDocument.FromFile("document.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
    SigningReason = "Document Approval",
    SigningLocation = "New York"
};
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");

Operaciones asíncronas

var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");

Resumen comparativo de características

CaracterísticaPeachPDFIronPDF
HTML a PDFBásicoChromium completo
URL a PDFLimitado
CSS Grid/FlexboxNo
JavaScriptLimitadoES2024 completo
Fusionar PDF
Dividir PDFLimitado
Marcas de aguaLimitadoHTML completo
Encabezados/pies de páginaBásicoHTML completo
Firmas digitalesNo
PDF/ANo
Relleno de formulariosLimitado
Extracción de TextoBásico
Extracción de imágenesNo
Soporte de AsyncLimitado
MultiplataformaDesconocido

Problemas comunes de migración

Tema 1: Diferentes patrones de API

Problema: PeachPDFutiliza un patrón de conversión con salida de matriz de bytes;IronPDF utiliza un patrón de renderizado con salida PdfDocument.

Solución:

// PeachPDFpattern
var converter = new HtmlToPdfConverter();
var pdf = converter.Convert(html);
File.WriteAllBytes(path, pdf);

//IronPDFpattern
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);

Edición 2: Guardar la diferencia de métodos

Problema: PeachPDFrequiere File.WriteAllBytes();IronPDF tiene incorporado SaveAs().

Solución: reemplace File.WriteAllBytes("path", pdf) con pdf.SaveAs("path").

Número 3: Objetos de encabezado/pie

Problema: PeachPDFutiliza propiedades de cadena;IronPDF utiliza propiedades de objeto.

Solución: Envuelva las cadenas HTML en objetos HtmlHeaderFooter con la propiedad HtmlFragment.


Lista de comprobación de la migración

Pre-Migración

  • Auditar el uso de PeachPDFen el código base
  • Documentar configuraciones personalizadas
  • Tenga en cuenta todas las implementaciones de encabezado/pie de página
  • Obtenga la clave de licencia de IronPDFen IronPDF
  • Pruebe primero con la licencia de prueba de IronPDF

Cambios en el paquete

  • Eliminar el paquete NuGet PeachPDF
  • Instalar IronPdf el paquete NuGet : dotnet add package IronPdf

Cambios de código

  • Actualizar las importaciones del espacio de nombres (using PeachPDF;using IronPdf;)
  • Agregar using IronPdf.Rendering; para la funcionalidad de encabezado/pie de página
  • Reemplace HtmlToPdfConverter con ChromePdfRenderer
  • Reemplace converter.Convert(html) con renderer.RenderHtmlAsPdf(html)
  • Reemplace converter.ConvertUrl(url) con renderer.RenderUrlAsPdf(url)
  • Reemplace File.WriteAllBytes(path, pdf) con pdf.SaveAs(path)
  • Reemplace Footer con HtmlFooter objetos
  • Agregar inicialización de licencia al iniciar la aplicación

Posmigración

  • Probar la calidad de representación HTML
  • Verificación de que el resultado PDF se ajusta a las expectativas
  • Pruebe la representación del encabezado/pie de página con números de página
  • Agregue nuevas capacidades (seguridad, marcas de agua, fusión) según sea necesario

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 estructurados y visualmente atractivos.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta