Saltar al pie de página
GUíAS DE MIGRACIóN

Cómo migrar de PDF Duo a IronPDF en C#

Migrar de PDF Duo a IronPDF: Guía completa de migración a C

La migración de PDF Duo .NETaIronPDFtraslada su flujo de trabajo PDF .NET de una biblioteca oscura y mal documentada con un estado de mantenimiento poco claro a una solución estable, bien documentada y mantenida activamente. Esta guía proporciona una ruta de migración completa y paso a paso que elimina los riesgos asociados a las bibliotecas abandonadas, a la vez que se obtiene acceso a funciones avanzadas que PDF Duo no puede proporcionar.

Por qué migrar de PDF Duo a IronPDF

El problema del riesgo del dúo PDF

PDF Duo .NET es una biblioteca escurridiza y menos conocida del ecosistema .NET. Si bien puede haber atraído a los desarrolladores que buscan simplicidad, la oscuridad de la biblioteca presenta desafíos significativos para las aplicaciones de producción:

  1. Procedencia poco clara: Desarrollador desconocido sin respaldo verificable de la empresa. No hay repositorio visible en GitHub ni código fuente, las estadísticas de descarga de NuGet son limitadas y las condiciones de licencia inciertas.

  2. Falta de documentación: Es casi imposible encontrar información fiable. No existe ninguna referencia oficial de la API, los ejemplos de la comunidad son escasos y no hay tutoriales ni guías oficiales. Cualquier intento de utilizar PDF Duo se ve obstaculizado por la escasez de documentación fiable.

  3. Estado de abandono o inactividad: Los signos de abandono son evidentes con actualizaciones esporádicas o inexistentes. Los foros de soporte muestran mensajes de 2019 sin respuesta. El riesgo muy real de abandono compromete su viabilidad para proyectos significativos.

  4. Características Limitadas: Funcionalidad básica solamente-simple HTML a PDF y fusión PDF básica sin características avanzadas como formularios, seguridad o marcas de agua.

  5. Motor de renderizado desconocido: No hay transparencia sobre lo que hay bajo el capó. Se desconoce la compatibilidad con CSS/JavaScript, la calidad de representación es impredecible y la compatibilidad con las funciones web modernas es incierta.

  6. Riesgo de soporte: No hay recurso cuando las cosas se rompen. No hay soporte profesional, ni comunidad que ayude, y el riesgo de abandono es total.

Comparación entre PDF Duo e IronPDF

AspectoPDF Duo .NETIronPDF
MantenimientoDesconocido/InactivoActualizaciones activas y regulares
DocumentaciónEscaso/faltaCompleto
SoporteNingunoEquipo de asistencia profesional
Comunidad~0 usuarios41M+ descargas de NuGet
TraducciónMotor desconocidoChromium moderno
CaracterísticasBásicoCon todas las funciones
EstabilidadDesconocidoProbado en producción
LicenciasPoco claroTransparente

Para los equipos que planean la adopción de .NET 10 y C# 14 hasta 2025 y 2026,IronPDFproporciona una base estable con un desarrollo activo y una documentación completa, eliminando las incertidumbres de depender de una biblioteca abandonada.


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 IronPDF: Obtenga su clave de licencia en ironpdf.com

Cambios en el paquete NuGet

# Remove PDF Duo .NET(if you can find the correct package name)
dotnet remove package PDFDuo.NET
dotnet remove package PDFDuo
dotnet remove package PDF-Duo

# Install IronPDF
dotnet add package IronPdf
# Remove PDF Duo .NET(if you can find the correct package name)
dotnet remove package PDFDuo.NET
dotnet remove package PDFDuo
dotnet remove package PDF-Duo

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuración de licencias

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Identificar el uso de PDF Duo

# Find all PDF Duo references
grep -r "PDFDuo\|HtmlToPdfConverter\|PdfMerger" --include="*.cs" .
# Find all PDF Duo references
grep -r "PDFDuo\|HtmlToPdfConverter\|PdfMerger" --include="*.cs" .
SHELL

Referencia completa de la API

Cambios en el espacio de nombres

PDF Duo .NETIronPDF
usando PDFDuo;<código>usando IronPDF;</código>
usando PDFDuo.Document;<código>usando IronPDF;</código>
usando PDFDuo.Rendering;<código>usando IronPdf.Rendering;</código>
usando PDFDuo.Settings;<código>usando IronPDF;</código>

Conversión de HTML a PDF

PDF Duo .NETIronPDFNotas
nuevo HtmlToPdfConverter()<código>new ChromePdfRenderer()</códigoRenderizador principal
<código>converter.ConvertHtmlString(html, ruta)</código<código>renderer.RenderHtmlAsPdf(html).SaveAs(path)</códigoCadena HTML
converter.ConvertUrl(url, path)<código>renderer.RenderUrlAsPdf(url).SaveAs(path)</códigoConversión de URL
converter.ConvertFile(htmlPath, pdfPath)renderer.RenderHtmlFileAsPdf(htmlPath).SaveAs(pdfPath)Archivo HTML

Configuración de páginas

PDF Duo .NETIronPDFNotas
settings.PageSize = PageSize.A4<código>RenderingOptions.PaperSize = PdfPaperSize.A4</códigoTamaño del papel
settings.PageSize = PageSize.Letter<código>RenderingOptions.PaperSize = PdfPaperSize.Letter</códigoCarta para EE.UU
settings.Orientation = Landscape<código>RenderingOptions.PaperOrientation = Landscape</códigoOrientación
<código>nuevo Margins(top, right, bottom, left)</códigoPropiedades de los márgenes individualesVer más abajo

Marcadores

PDF Duo .NETIronPDFNotas
<código>nuevo Margins(top, right, bottom, left)</códigoPropiedades individualesSin objeto de márgenes
margenes.Top<código>RenderingOptions.MarginTop</códigoMargen superior (mm)
margenes.Derecha<código>RenderingOptions.MarginRight</códigoMargen derecho (mm)
margenes.Bottom<código>RenderingOptions.MarginBottom</códigoMargen inferior (mm)
margenes.Izquierda<código>RenderingOptions.MarginLeft</códigoMargen izquierdo (mm)

Mapeo de operaciones documentales

PDF Duo .NETIronPDFNotas
PDFDocument.Load(ruta)<código>PdfDocument.FromFile(path)</códigoCargar PDF
<código>document.Save(ruta)</código<código>pdf.SaveAs(ruta)</códigoGuardar PDF
document.ToBytes()<código>pdf.BinaryData</códigoObtener matriz de bytes
<código>new PdfMerger()</códigoPdfDocument.Merge()Método estático
merger.AddFile(path)<código>PdfDocument.FromFile(path)</códigoCargar y combinar
merger.Merge(output)merged.SaveAs(output)Tras la fusión

Nuevas funciones no disponibles en PDF Duo

CaracterísticaIronPDF
Encabezados/pies de páginaRenderingOptions.HtmlHeader, HtmlFooter
Números de páginamarcadores de posición {page}, {total-pages}
Marcas de agua<código>pdf.ApplyWatermark(html)</código
Protección mediante contraseña<código>pdf.SecuritySettings</código
Relleno de formularios<código>pdf.Form.Fields</código
Firmas digitales<código>pdf.SignWithFile()</código
Extracción de texto<código>pdf.ExtractAllText()</código
PDF a imagen<código>pdf.RasterizeToImageFiles()</código

Ejemplos de migración de código

Ejemplo 1: Conversión de HTML a PDF

Antes (PDF Duo):

// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        converter.ConvertHtmlString(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        converter.ConvertHtmlString(htmlContent, "output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Después (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var htmlContent = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        Console.WriteLine("PDF created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

La diferencia fundamental en este caso es el modelo de API. PDF Duo's HtmlToPdfConverter.ConvertHtmlString() toma tanto el HTML como la ruta de salida en una sola llamada, manejando la conversión y el guardado juntos. El ChromePdfRenderer.RenderHtmlAsPdf() deIronPDFdevuelve primero un objeto PdfDocument, que luego se guarda con SaveAs().

Este enfoque orientado a objetos ofrece ventajas significativas: puede manipular el PDF (añadir marcas de agua, fusionar documentos, añadir seguridad, extraer texto) antes de guardarlo, nada de lo cual es posible con el enfoque directo a archivo de PDF Duo. Consulte la documentación HTML a PDF para obtener más opciones de conversión.

Ejemplo 2: Conversión de URL a PDF

Antes (PDF Duo):

// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.ConvertUrl("https://www.example.com", "webpage.pdf");
        Console.WriteLine("Webpage converted to PDF!");
    }
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var converter = new HtmlToPdfConverter();
        converter.ConvertUrl("https://www.example.com", "webpage.pdf");
        Console.WriteLine("Webpage converted to PDF!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Después (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("Webpage converted to PDF!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("Webpage converted to PDF!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF Duo utiliza la misma clase HtmlToPdfConverter para la conversión de URL con ConvertUrl(url, outputPath).IronPDFutiliza ChromePdfRenderer con el método dedicado RenderUrlAsPdf(url), que devuelve un objeto PdfDocument.

Una ventaja clave es que el motor de renderizado basado en Chromium deIronPDFproporciona compatibilidad moderna con CSS3 y JavaScript, mientras que el motor de renderizado desconocido de PDF Duo hace que la compatibilidad con CSS/JavaScript sea incierta y la calidad de renderizado impredecible. Más información sobre Conversión de URL a PDF.

Ejemplo 3: Fusión de PDF

Antes (PDF Duo):

// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        merger.AddFile("document1.pdf");
        merger.AddFile("document2.pdf");
        merger.Merge("merged.pdf");
        Console.WriteLine("PDFs merged successfully!");
    }
}
// NuGet: Install-Package PDFDuo.NET
using PDFDuo;
using System;

class Program
{
    static void Main()
    {
        var merger = new PdfMerger();
        merger.AddFile("document1.pdf");
        merger.AddFile("document2.pdf");
        merger.Merge("merged.pdf");
        Console.WriteLine("PDFs merged successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Después (IronPDF):

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

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
        Console.WriteLine("PDFs merged successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Este ejemplo muestra una diferencia arquitectónica fundamental. PDF Duo utiliza una clase PdfMerger dedicada con un método AddFile() para poner archivos en cola y, a continuación, Merge() para combinar y guardar en un solo paso.

IronPDF utiliza un patrón diferente: carga cada PDF como un PdfDocument utilizando PdfDocument.FromFile(), luego utiliza el método estático PdfDocument.Merge()para combinarlos. Esto devuelve un nuevo objeto PdfDocument que se guarda por separado con SaveAs().

El enfoque deIronPDFofrece más flexibilidad: puede manipular cualquiera de los PDF antes de fusionarlos, añadir marcas de agua al resultado fusionado, aplicar ajustes de seguridad, etc. Para fusionar muchos archivos, puede utilizar LINQ:

var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
var paths = new[] { "document1.pdf", "document2.pdf", "document3.pdf" };
var pdfs = paths.Select(PdfDocument.FromFile).ToList();
var merged = PdfDocument.Merge(pdfs);
merged.SaveAs("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Más información sobre mezclar y dividir archivos PDF.


Nuevas capacidades tras la migración

Tras migrar a IronPDF, obtendrá funciones que PDF Duo sencillamente no puede ofrecerle:

Cabeceras y pies de página con números de página

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
    MaxHeight = 25
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Company Report</div>",
    MaxHeight = 25
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:center; font-size:10px;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF Duo no admite encabezados ni pies de página; no existe una funcionalidad equivalente.IronPDFes totalmente compatible con HTML/CSS e incorpora marcadores de posición para contenido dinámico, como números de página. Consulte la guía encabezados y pies de página.

Marcas de agua

using IronPdf;
using IronPdf.Editing;

var pdf = PdfDocument.FromFile("document.pdf");

pdf.ApplyWatermark(
    "<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
    45,
    VerticalAlignment.Middle,
    HorizontalAlignment.Center);

pdf.SaveAs("watermarked.pdf");
using IronPdf;
using IronPdf.Editing;

var pdf = PdfDocument.FromFile("document.pdf");

pdf.ApplyWatermark(
    "<h1 style='color:red; opacity:0.3;'>CONFIDENTIAL</h1>",
    45,
    VerticalAlignment.Middle,
    HorizontalAlignment.Center);

pdf.SaveAs("watermarked.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF Duo no admite marcas de agua.IronPDFproporciona marcas de agua basadas en HTML con soporte completo de estilos CSS.

Protección con contraseña

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("secured.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF Duo no admite protección por contraseña ni ajustes de seguridad.

Extracción de texto

var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF Duo no admite la extracción de texto.


Notas de migración críticas

Objeto de los márgenes a las propiedades individuales

PDF Duo utiliza un único objeto Margins;IronPDFutiliza propiedades individuales:

// PDF Duo:
new Margins(top: 20, right: 15, bottom: 20, left: 15)

// IronPDF:
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginRight = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
// PDF Duo:
new Margins(top: 20, right: 15, bottom: 20, left: 15)

// IronPDF:
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginRight = 15;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 15;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nombres de métodos de ahorro

Diferentes nombres de métodos para guardar:

// PDF Duo:
document.Save("output.pdf");

// IronPDF:
pdf.SaveAs("output.pdf");
// PDF Duo:
document.Save("output.pdf");

// IronPDF:
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Carga de PDF

Diferentes nombres de métodos de carga:

// PDF Duo:
PDFDocument.Load("document.pdf")

// IronPDF:
PdfDocument.FromFile("document.pdf")
// PDF Duo:
PDFDocument.Load("document.pdf")

// IronPDF:
PdfDocument.FromFile("document.pdf")
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Configuración de objetos a propiedades

PDF Duo utiliza objetos de configuración pasados al constructor;IronPDFutiliza propiedades:

// PDF Duo:
var settings = new PDFSettings { PageSize = PageSize.A4 };
var converter = new HtmlToPdfConverter(settings);

// IronPDF:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// PDF Duo:
var settings = new PDFSettings { PageSize = PageSize.A4 };
var converter = new HtmlToPdfConverter(settings);

// IronPDF:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Comparación de características

CaracterísticaPDF Duo .NETIronPDF
HTML a PDFBásicoCSS3 completo, JavaScript
URL a PDFBásicoCompleto con soporte auth
Fusión de PDF
Encabezados/pies de páginaNoCompatibilidad total con HTML
Números de páginaNoMarcadores de posición incorporados
Marcas de aguaNoBasado en HTML
Protección por contraseñaNoOpciones de seguridad completas
Relleno de formulariosNo
Firmas digitalesNo
Extracción de TextoNo
PDF a imágenesNo
Soporte de AsyncDesconocidoAsync/await completo
.NET Core/5+DesconocidoSoporte completo

Lista de comprobación de la migración

Pre-Migración

  • [ ] Buscar todas las referencias PDF Duo en codebase
  • [ ] Configuración actual del documento (tamaño de página, márgenes, etc.)
  • [ ] Enumere todas las operaciones PDF utilizadas
  • [ ] Identificar oportunidades para nuevas funciones (cabeceras, marcas de agua, seguridad)
  • [ ] Obtener la clave de licencia de IronPDF

Cambios en el paquete

  • [ ] Eliminar el paquete NuGet PDFDuo.NET
  • [Instale el paquete NuGet IronPdf: dotnet add package IronPdf
  • [Actualizar las importaciones de espacios de nombres de usando PDFDuo; a usando IronPDF;

Cambios de código

  • [ ] Añadir configuración de clave de licencia al inicio
  • [Reemplace HtmlToPdfConverter por ChromePdfRenderer
  • [Reemplace ConvertHtmlString(html, path) por RenderHtmlAsPdf(html).SaveAs(path)
  • [Reemplace ConvertUrl(url, path) por RenderUrlAsPdf(url).SaveAs(path)
  • [ ] Sustituir el patrón PdfMerger por el patrón PdfDocument.Merge()
  • [ ] Convertir el objeto Margins en propiedades de margen individuales
  • [ ] Sustituya Save() por SaveAs()
  • [ ] Sustituya Load() por FromFile()

Posmigración

  • [ ] Ejecutar pruebas de regresión comparando la salida PDF
  • [ ] Comprobar que el tamaño de las páginas y los márgenes coinciden
  • [Prueba con HTML/CSS complejo (el moderno motor deIronPDFdebería manejarlo mejor)
  • [ ] Añadir nuevas funciones (encabezados, pies de página, marcas de agua, seguridad)
  • [ ] Actualización de la documentación

Conclusión

La migración de PDF Duo aIronPDFelimina los riesgos significativos de confiar en una biblioteca oscura, mal documentada y con un estado de mantenimiento poco claro. La migración proporciona una base estable y probada en producción con documentación completa, soporte profesional y desarrollo activo.

Los cambios clave en esta migración son:

  1. Estabilidad: Desconocida/abandonada → Desarrollo activo con más de 41M de descargas
  2. Documentación: Escasa/falta → Guías completas y referencia de API
  3. Renderización: Motor desconocido → Moderno basado en Chromium
  4. Clase: HtmlToPdfConverterChromePdfRenderer
  5. Métodos: ConvertHtmlString()/ConvertUrl()RenderHtmlAsPdf()/RenderUrlAsPdf()
  6. Fusión: Clase PDFMergerMétodo estático PDFDocument.Merge()
  7. Margenes: objeto Margins → Propiedades RenderingOptions individuales
  8. Nuevas funciones: Encabezados/pies de página, marcas de agua, seguridad, extracción de texto, etc

Explore la documentación completa de IronPDF, tutoriales y referencia de API para acelerar su migración a PDF Duo.

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