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

Cómo migrar de TuesPechkin a IronPDF en C#

Migrando de MartesPechkina IronPDF: Una guía completa para desarrolladores de C

TuesPechkin ha servido como una envoltura a prueba de hilos alrededor de la biblioteca wkhtmltopdf, ayudando a los desarrolladores .NET a convertir HTML a PDF durante años. Sin embargo, la tecnología wkhtmltopdf subyacente se actualizó por última vez en 2015 y se abandonó oficialmente en diciembre de 2022. Esto crea limitaciones críticas de seguridad, estabilidad y renderización que los equipos de desarrollo ya no pueden ignorar.

Esta guía proporciona una ruta de migración completa de MartesPechkina IronPDF, con instrucciones paso a paso, comparaciones de código y ejemplos prácticos para desarrolladores .NET profesionales que estén evaluando esta transición.

Por qué migrar de MartesPechkinahora

La decisión de migrar de MartesPechkinya no es opcional para los equipos de desarrollo preocupados por la seguridad. La biblioteca wkhtmltopdf subyacente contiene vulnerabilidades críticas sin parche que nunca se solucionarán.

Vulnerabilidad de seguridad crítica: CVE-2022-35583

AtributoValor
CVE IDCVE-2022-35583
SeverityCRITICO (9.8/10)
Vector de ataqueRed
EstadoNUNCA SERÁ PARCHEADO
AfectadosTODAS las versiones de TuesPechkin

Los responsables de wkhtmltopdf han declarado explícitamente que NO corregirán las vulnerabilidades de seguridad. Toda aplicación que utilice MartesPechkinestá permanentemente expuesta a ataques de Falsificación de Peticiones del Lado del Servidor (SSRF).

Cómo funciona el ataque

Al procesar HTML proporcionado por el usuario, los atacantes pueden inyectar contenido malicioso:

<!-- Attacker submits this HTML to your PDF generator -->
<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe>
<img src="http://internal-admin-panel:8080/api/users?export=all" />
<!-- Attacker submits this HTML to your PDF generator -->
<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe>
<img src="http://internal-admin-panel:8080/api/users?export=all" />
HTML

Esto permite a los atacantes acceder a los puntos finales de metadatos de AWS/Azure/GCP, robar datos de API internos, escanear puertos de redes internas y extraer configuración confidencial.

La crisis tecnológica

TuesPechkin incluye wkhtmltopdf, que utiliza Qt WebKit 4.8, una tecnología antigua, anterior a la era Chrome. Esto significa:

  • No es compatible con Flexbox
  • No es compatible con CSS Grid
  • Ejecución rota de JavaScript
  • No es compatible con ES6+

La crisis de estabilidad

Incluso con el <código>ThreadSafeConverter</códigoanunciado, MartesPechkinse bloquea bajo carga elevada:

// ❌ MartesPechkin- "ThreadSafeConverter" still crashes
var converter = new TuesPechkin.ThreadSafeConverter(
    new TuesPechkin.RemotingToolset<PechkinBindings>());

// Under high load, you'll see:
// System.AccessViolationException: Attempted to read or write protected memory
// Process terminated unexpectedly
// Converter hangs indefinitely
// ❌ MartesPechkin- "ThreadSafeConverter" still crashes
var converter = new TuesPechkin.ThreadSafeConverter(
    new TuesPechkin.RemotingToolset<PechkinBindings>());

// Under high load, you'll see:
// System.AccessViolationException: Attempted to read or write protected memory
// Process terminated unexpectedly
// Converter hangs indefinitely
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDFvs TuesPechkin: Comparación de características

Comprender las diferencias arquitectónicas ayuda a los responsables técnicos a evaluar la inversión en migración:

CaracterísticaMartesPechkinIronPDF
LicenciaGratuito (Licencia MIT)Comercial
Seguridad de hilosRequiere gestión manualSoporte nativo
MonedaLimitado, puede bloquearse bajo cargaRobusto, maneja alta concurrencia
DesarrolloInactivo, última actualización 2015Mejoras activas y continuas
Facilidad de usoConfiguración complejaFácil de usar con guías
DocumentaciónBásicoExtenso con ejemplos
SeguridadcVE críticos✅ No se conocen vulnerabilidades
HTML a PDF⚠️ WebKit desactualizadochromium moderno
CSS3❌ Parcial✅ Soporte completo
Flexbox/Grid❌ No compatible✅ Soporte completo
JavaScript⚠️ Poco fiableeS6+ completo
Manipulación de PDF❌ No disponible✅ Completo
Firmas digitales❌ No disponible✅ Completo
Cumplimiento de PDF/A❌ No disponible✅ Completo
Relleno de formularios❌ No disponible✅ Completo
Marcas de agua❌ No disponible✅ Completo
Fusionar/Dividir❌ No disponible✅ Completo

Inicio rápido: Migración de MartesPechkina IronPDF

La migración puede comenzar inmediatamente con estos pasos básicos.

Paso 1: Sustituir paquetes NuGet

Eliminar todos los paquetes TuesPechkin:

# Remove MartesPechkinand all related packages
dotnet remove package TuesPechkin
dotnet remove package TuesPechkin.Wkhtmltox.Win64
dotnet remove package TuesPechkin.Wkhtmltox.Win32
# Remove MartesPechkinand all related packages
dotnet remove package TuesPechkin
dotnet remove package TuesPechkin.Wkhtmltox.Win64
dotnet remove package TuesPechkin.Wkhtmltox.Win32
SHELL

Instalar IronPDF:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Paso 2: Eliminar binarios nativos

Elimine estos archivos y carpetas de su proyecto:

  • <código>wkhtmltox.dll</código
  • <código>wkhtmltopdf.exe</código
  • Cualquier archivo wkhtmlto*
  • Carpeta TuesPechkin.Wkhtmltox

Paso 3: Actualizar los espacios de nombres

Sustituya los espacios de nombres MartesPechkinpor el espacio de nombres IronPdf:

// Before (TuesPechkin)
using TuesPechkin;
using TuesPechkin.Wkhtmltox.Win64;

// After (IronPDF)
using IronPdf;
// Before (TuesPechkin)
using TuesPechkin;
using TuesPechkin.Wkhtmltox.Win64;

// After (IronPDF)
using IronPdf;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Paso 4: Inicializar licencia

Añadir inicialización de licencia al inicio de la aplicación:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Ejemplos de migración de código

Convertir HTML a PDF

El caso de uso más común demuestra la diferencia de complejidad entre estas bibliotecas PDF .NET.

Enfoque TuesPechkin:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Hello World</h1></body></html>";
        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = { new ObjectSettings { HtmlText = html } }
        });

        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Hello World</h1></body></html>";
        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = { new ObjectSettings { HtmlText = html } }
        });

        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Enfoque IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

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

La versión MartesPechkinrequiere crear un ConvertidorEstándar con una compleja cadena de inicialización: RemotingToolset, Win64EmbeddedDeployment, y TempFolderDeployment. También debe escribir manualmente bytes en un archivo.

IronPDF elimina esta ceremonia por completo. Crear un ChromePdfRenderer, renderizar HTML y guardar. El código es autodocumentado y no requiere conocimientos de herramientas de despliegue ni de gestión de binarios específicos de la plataforma.

Para situaciones avanzadas de conversión de HTML a PDF, consulte la Guía de conversión de HTML a PDF.

Convertir URL en PDF

La conversión de URL a PDF presenta diferencias de complejidad similares.

Enfoque TuesPechkin:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = {
                new ObjectSettings {
                    PageUrl = "https://www.example.com"
                }
            }
        });

        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = {
                new ObjectSettings {
                    PageUrl = "https://www.example.com"
                }
            }
        });

        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

TuesPechkin utiliza <código>ObjectSettings.PageUrl</códigoanidado dentro de un HtmlToPdfDocument.IronPDFproporciona un método RenderUrlAsPdf dedicado que expresa claramente la intención.

Explore la URL a la documentación PDF para conocer las opciones de autenticación y encabezado personalizado.

Configuración de renderizado personalizada

La orientación de la página, el tamaño del papel y los márgenes requieren diferentes enfoques de configuración.

Enfoque TuesPechkin:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Custom PDF</h1></body></html>";

        var document = new HtmlToPdfDocument
        {
            GlobalSettings = {
                Orientación= GlobalSettings.PdfOrientation.Landscape,
                PaperSize = GlobalSettings.PdfPaperSize.A4,
                Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 }
            },
            Objects = {
                new ObjectSettings { HtmlText = html }
            }
        };

        byte[] pdfBytes = converter.Convert(document);
        File.WriteAllBytes("custom.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Custom PDF</h1></body></html>";

        var document = new HtmlToPdfDocument
        {
            GlobalSettings = {
                Orientación= GlobalSettings.PdfOrientation.Landscape,
                PaperSize = GlobalSettings.PdfPaperSize.A4,
                Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 }
            },
            Objects = {
                new ObjectSettings { HtmlText = html }
            }
        };

        byte[] pdfBytes = converter.Convert(document);
        File.WriteAllBytes("custom.pdf", pdfBytes);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Enfoque IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;

        string html = "<html><body><h1>Custom PDF</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("custom.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;

        string html = "<html><body><h1>Custom PDF</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

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

TuesPechkin separa los ajustes en <código>ConfiguraciónGlobal</códigopara las opciones de todo el documento y ObjectSettings para el contenido.IronPDFconsolida todo en <código>RenderingOptions</códigocon nombres de propiedades claros y fáciles de encontrar.

Referencia de la API de MartesPechkina IronPDF

Este mapeo acelera la migración al mostrar los equivalentes directos de las API:

MartesPechkinIronPDFNotas
ConvertidorEstándar<código>ChromePdfRenderer</códigoSin inicializaciones complejas
<código>ThreadSafeConverter</código<código>ChromePdfRenderer</códigoSeguridad de hilos nativa
<código>HtmlToPdfDocument</códigoParámetros del métodoNo se necesita ningún objeto documental
<código>ConfiguraciónGlobal</código<código>RenderingOptions</códigoOpciones de configuración
<código>ObjectSettings.HtmlText</código<código>RenderHtmlAsPdf(html)</códigoTraducción directa
<código>ObjectSettings.PageUrl</código<código>RenderUrlAsPdf(url)</códigoRepresentación de URL
<código>GlobalSettings.PaperSize</código<código>RenderingOptions.PaperSize</códigoTamaño del papel
ConfiguraciónGlobal.Orientación<código>RenderingOptions.PaperOrientation</códigoOrientación
<código>MarginSettings</código>MarginTop, MarginBottom, etc.Propiedades de los márgenes individuales
[page] marcador de posición{page} marcador de posiciónSintaxis del número de página
[toPage] marcador de posición{total-páginas} marcador de posiciónSintaxis total de páginas
Conjunto de herramientas remotasNo es necesarioSin gestión de despliegue
<código>Win64EmbeddedDeployment</códigoNo es necesarioSin binarios de plataforma
<código>TempFolderDeployment</códigoNo es necesarioSin gestión de carpetas temporales

Problemas comunes de migración y soluciones

Cuestión 1: Código de inicialización complejo

Problema: MartesPechkinrequiere una compleja configuración del conversor con conjuntos de herramientas de despliegue.

Solución:IronPDFes sencillo:

// Before (TuesPechkin)
var converter = new StandardConverter(
    new RemotingToolset<PdfToolset>(
        new Win64EmbeddedDeployment(
            new TempFolderDeployment())));

// After (IronPDF)
var renderer = new ChromePdfRenderer();
// That's it!
// Before (TuesPechkin)
var converter = new StandardConverter(
    new RemotingToolset<PdfToolset>(
        new Win64EmbeddedDeployment(
            new TempFolderDeployment())));

// After (IronPDF)
var renderer = new ChromePdfRenderer();
// That's it!
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Número 2: Thread Safety Crashes

Problema: El <código>ThreadSafeConverter</códigode MartesPechkinsigue fallando bajo alta carga con AccessViolationException.

Solución:IronPDFcuenta con seguridad de subprocesos nativa, sin necesidad de configuración especial:

//IronPDFis inherently thread-safe
var renderer = new ChromePdfRenderer();
// Use from any thread without crashes
//IronPDFis inherently thread-safe
var renderer = new ChromePdfRenderer();
// Use from any thread without crashes
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Edición 3: Sintaxis del marcador de posición del número de página

Problema: MartesPechkinutiliza [page] y [toPage] marcadores de posición.

Solución: Actualización de la sintaxis de los marcadores de posición de IronPDF:

// Before (TuesPechkin)
"Page [page] of [toPage]"

// After (IronPDF)
"Page {page} of {total-pages}"
// Before (TuesPechkin)
"Page [page] of [toPage]"

// After (IronPDF)
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Número 4: CSS Layout Broken

Problema: Los diseños Flexbox y Grid no funcionan en MartesPechkinporque wkhtmltopdf utiliza Qt WebKit 4.8.

Solución: Utilizar CSS moderno adecuado con IronPDF:

// Remove table-based workarounds, use modern CSS
var html = @"
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// Works correctly with Chromium!
// Remove table-based workarounds, use modern CSS
var html = @"
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// Works correctly with Chromium!
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Número 5: Gestión nativa de binarios

Problema: MartesPechkinrequiere los binarios wkhtmltopdf específicos de la plataforma y la configuración de la ruta.

Solución:IronPDFgestiona todas las dependencias a través de NuGet, sin binarios nativos que gestionar:

# Just install the package
dotnet add package IronPdf
# No wkhtmltopdf binaries needed
# Just install the package
dotnet add package IronPdf
# No wkhtmltopdf binaries needed
SHELL

Lista de comprobación de la migración a TuesPechkin

Tareas previas a la migración

Audite su código base para identificar el uso de TuesPechkin:

grep -r "using TuesPechkin" --include="*.cs" .
grep -r "ThreadSafeConverter\|RemotingToolset" --include="*.cs" .
grep -r "using TuesPechkin" --include="*.cs" .
grep -r "ThreadSafeConverter\|RemotingToolset" --include="*.cs" .
SHELL

Documentar las configuraciones actuales de <código>ConfiguraciónGlobal</código(tamaño del papel, orientación, márgenes). Documentar las configuraciones de ObjectSettings (contenido HTML, URL). Identificar las implementaciones de encabezado/pie para la conversión. Localice todos los binarios de wkhtmltopdf para eliminarlos.

Tareas de actualización de código

  1. Eliminar paquetes NuGet de TuesPechkin
  2. Eliminar los binarios nativos de wkhtmltopdf
  3. Instalación del paquete IronPdf NuGet
  4. Actualizar las declaraciones de uso de TuesPechkin a IronPdf
  5. Añadir la inicialización de la clave de licencia al inicio
  6. Sustituir convertidores por ChromePdfRenderer
  7. Convertir <código>ConfiguraciónGlobal</códigoa RenderingOptions
  8. Convertir ObjectSettings en parámetros de método
  9. Actualizar la configuración de márgenes a propiedades individuales
  10. Actualizar la sintaxis de encabezado/pie de página a HtmlHeaderFooter basada en HTML
  11. Corregir la sintaxis de los marcadores de página ([página]{página})
  12. Eliminar todo el código de despliegue/toolset

Pruebas posteriores a la migración

Tras la migración, verifique estos aspectos:

  • Ejecutar todas las pruebas unitarias
  • Pruebe escenarios seguros para subprocesos (IronPDF maneja subprocesos múltiples sin fallos)
  • Comparar la calidad de salida de PDF (Chromium renderiza con más precisión)
  • Verificación del renderizado CSS (Flexbox y Grid ahora funcionan)
  • Pruebe la ejecución de JavaScript (ahora es compatible con ES6+)
  • Prueba de renderizado de encabezado/pie de página
  • Operaciones por lotes de pruebas de rendimiento
  • Escaneo de seguridad para verificar que no quedan binarios wkhtmltopdf

Beneficios clave de migrar a IronPDF

Pasar de MartesPechkinaIronPDFofrece varias ventajas fundamentales:

Seguridad: Se eliminan CVE-2022-35583y otras vulnerabilidades de wkhtmltopdf. El motor Chromium deIronPDFrecibe actualizaciones de seguridad periódicas.

Seguridad de hilos nativa: Se acabaron las complejas configuraciones de ThreadSafeConverter. Se acabaron las AccessViolationException bajo carga.IronPDFgestiona la concurrencia automáticamente.

Motor de renderizado moderno: Compatibilidad total con CSS3, Flexbox, Grid y ES6+ JavaScript. Los PDF se muestran exactamente como aparecen en los navegadores modernos.

Despliegue simplificado: No hay que gestionar binarios específicos de la plataforma. Ninguna ceremonia RemotingToolset, Win64EmbeddedDeployment, o TempFolderDeployment. Basta con instalar el paquete NuGet.

Desarrollo Activo: A medida que aumenta la adopción de .NET 10 y C# 14 hasta 2026, las actualizaciones periódicas deIronPDFgarantizan la compatibilidad con las versiones actuales y futuras de .NET.

Capacidades ampliadas: MartesPechkinsólo convierte HTML a PDF.IronPDFañade manipulación de PDF, firmas digitales, conformidad con PDF/A, rellenado de formularios, marcas de agua y operaciones de fusión/división.

Conclusión

TuesPechkin ha servido bien a la comunidad .NET como una envoltura segura para hilos alrededor de wkhtmltopdf. Sin embargo, con la tecnología subyacente abandonada desde diciembre de 2022 y vulnerabilidades de seguridad críticas que nunca se parchearán, el uso continuado crea un riesgo inaceptable para las aplicaciones de producción.

IronPDF ofrece una alternativa moderna y segura con una API más sencilla, seguridad de hilos nativa y un motor de renderizado Chromium que maneja los estándares web contemporáneos. La ruta de migración es sencilla: sustituir los paquetes NuGet, eliminar los binarios nativos y simplificar el código del conversor.

Comience su migración hoy mismo con una prueba gratuita de IronPDF y elimine las vulnerabilidades de seguridad inherentes a las soluciones basadas en wkhtmltopdf.

Para una guía de implementación completa, explore la documentación de IronPDF y tutoriales.

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