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

Cómo migrar de Kaizen.io a IronPDF en C#

La migración de Kaizen.io HTML-to-PDF aIronPDFtransforma su flujo de trabajo PDF .NET de un servicio dependiente de la nube con latencia de red y problemas de privacidad de datos a una biblioteca local en proceso que mantiene sus datos dentro de su infraestructura. Esta guía proporciona una ruta de migración completa y paso a paso que elimina las dependencias de API externas y los precios por solicitud para desarrolladores .NET profesionales.

Por qué migrar de Kaizen.io a IronPDF

Los retos de las API basadas en la nube

Kaizen.io HTML-to-PDF, al igual que otros servicios PDF basados en la nube, introduce limitaciones que afectan a las aplicaciones de producción:

  1. Dependencia de la nube: requiere conexión constante a Internet y disponibilidad de servicios externos. Si el servicio de Kaizen.io experimenta un tiempo de inactividad, la generación de PDF de su aplicación deja de funcionar.

  2. Preocupaciones sobre la privacidad de los datos: el contenido HTML sensible (incluidos datos de clientes, informes financieros y documentos confidenciales) debe transmitirse a servidores de terceros para su procesamiento.

  3. Latencia de la red: cada generación de PDF genera retrasos en el viaje de ida y vuelta de entre 100 y 500 ms o más, lo que agrega una sobrecarga significativa a los tiempos de respuesta de su aplicación.

  4. Precios por solicitud: los costos se escalan directamente con el volumen de uso, lo que hace que la generación de PDF en grandes volúmenes sea cada vez más costosa.

  5. Limitación de velocidad: la limitación de la API durante períodos de alto tráfico puede provocar fallas o demoras en la generación de PDF cuando más los necesita.

  6. Dependencia del proveedor: los cambios en la API o el riesgo de interrupción del servicio dejan su aplicación vulnerable a decisiones comerciales externas.

Comparación entre Kaizen.io y IronPDF

Característica Kaizen.io IronPDF
Procesamiento Nube (servidores externos) Local (en proceso)
Privacidad de datos Datos transmitidos externamente Los datos nunca salen de su infraestructura
Latencia Red de ida y vuelta (100-500ms+) Procesamiento local (50-200ms)
Disponibilidad Depende de un servicio externo 100% bajo su control
Precios Por solicitud o suscripción Licencia única o anual
Modo sin conexión No es posible Funcionalidad completa
Límites de tarifa Estrangulamiento de API Sin límites
JavaScript Asistencia limitada Ejecución completa de Chromium

Para los equipos que planifican la adopción de .NET 10 y C# 14 hasta 2025 y 2026,IronPDFproporciona una base preparada para el futuro con un procesamiento local que elimina las dependencias de servicios externos.


Evaluación de la complejidad de la migración

Esfuerzo estimado por función

Característica Complejidad de la migración Notas
HTML básico a PDF Muy bajo Sustitución directa de métodos
Archivo HTML a PDF Muy bajo Sustitución directa de métodos
URL a PDF Muy bajo Sustitución directa de métodos
Encabezados/pies de página Bajo Cambio de sintaxis del marcador de posición
Configuración de la página Muy bajo Mapeo de propiedades
Gestión de claves API Bajo Eliminar por completo

Cambio de paradigma

El cambio fundamental en esta migración de Kaizen.io es de las llamadas API en la nube a la representación local en proceso:

using IronPdf; Kaizen.io: HtmlToPdfConverter → Convert(html) → byte[] (vía red) IronPDF: ChromePdfRenderer → RenderHtmlAsPdf(html) → Documento PDF (local) using IronPdf;


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.com

Cambios en el paquete NuGet

using IronPdf;bash

Remove Kaizen.io package

dotnet remove package Kaizen.HtmlToPdf dotnet remove package Kaizen.IO.HtmlToPdf

Install IronPDF

dotnet add package IronPdf using IronPdf;

Configuración de licencias

using IronPdf;csharp // Add at application startup (Program.cs or Startup.cs) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; using IronPdf;

Identificar el uso de Kaizen.io

using IronPdf;bash

Find all Kaizen.io references

grep -r "using Kaizen|HtmlToPdfConverter|ConversionOptions" --include=".cs" . grep -r "ConvertUrl|ConvertHtml|Kaizen" --include=".cs" . using IronPdf;


Referencia completa de la API

Clases

Clase Kaizen.io Equivalente de IronPDF Notas
<código>HtmlToPdfConverter <código>ChromePdfRenderer Conversor principal
<código>ConversionOptions <código>ChromePdfRenderOptions A través de RenderingOptions
<código>HeaderOptions|HtmlHeaderFooteroTextHeaderFooter` Encabezados HTML/texto
<código>FooterOptions|HtmlHeaderFooteroTextHeaderFooter` Pies de página HTML/texto
<código>TamañoDePágina` <código>TamañoDelPapel Enumeración del tamaño del papel
Orientación Orientación del documento pdf Enum de orientación

Métodos

Método Kaizen.io Equivalente de IronPDF Notas
converter.Convert(html) renderer.RenderHtmlAsPdf(html) Devuelve PdfDocument
<código>converter.ConvertUrl(url)` <código>renderer.RenderUrlAsPdf(url) Soporte directo de URL
<código>File.WriteAllBytes(ruta, bytes) <código>pdf.SaveAs(ruta) Método de guardado directo

Mapeo de propiedades de ConversionOptions

Propiedad de Kaizen.io Equivalente de IronPDF Notas
<código>TamañoDePágina <código>RenderingOptions.PaperSize Valor de enum
Orientación <código>RenderingOptions.PaperOrientation` Retrato/Paisaje
<código>MarginTop <código>RenderingOptions.MarginTop En milímetros
MargenInferior <código>RenderingOptions.MarginBottom` En milímetros
<código>Header.HtmlContent <código>RenderingOptions.HtmlHeader.HtmlFragment Encabezado HTML
Pie de página.HtmlContent <código>RenderingOptions.HtmlFooter.HtmlFragment` Pie de página HTML

Mapeo de marcadores

Kaizen.io Marcador de posición Marcador de posición IronPDF Notas
{page} {page} Página actual (igual)
{total} {total de páginas} Total de páginas (¡diferentes!)
{fecha} {fecha} Fecha actual (igual)
{title} {html-title} Título del documento (¡diferente!)

Ejemplos de migración de código

Ejemplo 1: HTML básico a PDF

Antes (Kaizen.io):

using IronPdf;csharp using Kaizen.IO; using System.IO;

class Program { static void Main() { var converter = new HtmlToPdfConverter(); var html = "

Hello World

"; var pdfBytes = converter.Convert(html); File.WriteAllBytes("output.pdf", pdfBytes); } } using IronPdf;

Después (IronPDF):

using IronPdf;csharp // NuGet: Install-Package IronPdf using IronPdf; using System.IO;

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

Hello World

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

El enfoque de Kaizen.io crea un HtmlToPdfConverter, llama a Convert() para obtener una matriz de bytes y, a continuación, escribe manualmente los bytes en un archivo mediante File.WriteAllBytes(). Esto implica un viaje de ida y vuelta en red al servicio en la nube de Kaizen.io.

El <código>ChromePdfRendererdeIronPDFprocesa todo localmente. El métodoRenderHtmlAsPdf()devuelve un objetoPdfDocumentcon un práctico métodoSaveAs()`, sin necesidad de manipulación manual de matrices de bytes ni latencia de red. Consulte la documentación HTML a PDF para obtener más opciones de conversión.

Ejemplo 2: Archivo HTML a PDF con configuración de página

Antes (Kaizen.io):

using IronPdf;csharp using Kaizen.IO; using System; using System.IO;

class Program { static void Main() { var converter = new HtmlToPdfConverter(); var htmlContent = File.ReadAllText("input.html"); var options = new ConversionOptions { PageSize = PageSize.A4, Orientation = Orientation.Portrait }; var pdfBytes = converter.Convert(htmlContent, options); File.WriteAllBytes("document.pdf", pdfBytes); } } using IronPdf;

Después (IronPDF):

using IronPdf;csharp // NuGet: Install-Package IronPdf using IronPdf; using System; using System.IO;

class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait; var pdf = renderer.RenderHtmlFileAsPdf("input.html"); pdf.SaveAs("document.pdf"); } } using IronPdf;

El enfoque de Kaizen.io requiere leer manualmente el contenido del archivo HTML con File.ReadAllText(), crear un objeto <código>ConversionOptionsindependiente, pasar ambos al métodoConvert()` y, a continuación, escribir manualmente los bytes resultantes en un archivo.

IronPDF proporciona un método RenderHtmlFileAsPdf() dedicado que lee el archivo directamente, sin necesidad de lectura manual. La configuración se establece en la propiedad RenderingOptions del renderizador, manteniendo todos los ajustes en un solo lugar. Los enums PdfPaperSize.A4 y PdfPaperOrientation.Portrait se mapean directamente desde los equivalentes de Kaizen.io.

Ejemplo 3: URL a PDF con encabezados y pies de página

Antes (Kaizen.io):

using IronPdf;csharp using Kaizen.IO; using System; using System.IO;

class Program { static void Main() { var converter = new HtmlToPdfConverter(); var options = new ConversionOptions { Header = new HeaderOptions { HtmlContent = "

Company Header
" }, Footer = new FooterOptions { HtmlContent = "
Page {page} of {total}
" }, MarginTop = 20, MarginBottom = 20 }; var pdfBytes = converter.ConvertUrl("https://example.com", options); File.WriteAllBytes("webpage.pdf", pdfBytes); } } using IronPdf;

Después (IronPDF):

using IronPdf;csharp // NuGet: Install-Package IronPdf using IronPdf; using System; using System.IO;

class Program { static void Main() { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.TextHeader.CenterText = "Company Header"; renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"; renderer.RenderingOptions.MarginTop = 20; renderer.RenderingOptions.MarginBottom = 20; var pdf = renderer.RenderUrlAsPdf("https://example.com"); pdf.SaveAs("webpage.pdf"); } } using IronPdf;

Este ejemplo muestra varias diferencias clave en la migración. Kaizen.io requiere objetos <código>HeaderOptionsy <código>FooterOptions</code>anidados dentro deConversionOptions, cada uno con una propiedadHtmlContent.IronPDFproporciona una configuración más limpia deTextHeaderyTextFootercon propiedadesCenterText,LeftTextyRightText` dedicadas.

Nota crítica: ¡La sintaxis del marcador de posición es diferente! Kaizen.io utiliza {total}para el recuento total de páginas, mientras queIronPDFutiliza {total-pages}. Este es el problema de migración más común: busque {total}en su código base y sustitúyalo por {total-pages}.

El método RenderUrlAsPdf() deIronPDFrenderiza directamente cualquier URL con ejecución completa de JavaScripta través del motor Chromium, sin necesidad de recurrir a ninguna solución. Más información sobre conversión de URL a PDF y encabezados y pies de página.


Notas de migración críticas

Cambio en la sintaxis de los marcadores

El cambio más importante al migrar encabezados y pies de página es la sintaxis de los marcadores de posición:

using IronPdf;csharp // Kaizen.io placeholders: "Page {page} of {total}"

//IronPDFplaceholders: "Page {page} of {total-pages}" using IronPdf;

Mapeo completo de marcadores de posición:

  • {page}{page}(igual)
  • {total}{total de páginas}(¡DIFERENTE!)
  • {title}{html-title}(¡DIFERENTE!)
  • {fecha}{fecha} (igual)
  • {time}{time} (igual)

Cambio de tipo de retorno

Kaizen.io devuelve byte[] directamente.IronPDFdevuelve un objeto PdfDocument:

using IronPdf;csharp // Kaizen.io returns byte[] byte[] pdfBytes = converter.Convert(html); File.WriteAllBytes("output.pdf", pdfBytes);

//IronPDFreturns PdfDocument var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); // Direct save byte[] bytes = pdf.BinaryData; // Or get bytes if needed using IronPdf;

Quitar la gestión de claves de API

Kaizen.io requiere autenticación de clave API por solicitud.IronPDFutiliza una clave de licencia que se establece una vez al iniciar la aplicación:

using IronPdf;csharp // DELETE this Kaizen.io pattern: var converter = new HtmlToPdfConverter("YOUR_API_KEY");

// IronPDF: Set once at startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; var renderer = new ChromePdfRenderer(); // No API key needed using IronPdf;

Borrar la gestión de errores de red

Elimine la lógica de reintento, la gestión del límite de velocidad y el código de tiempo de espera de la red:IronPDFprocesa localmente:

using IronPdf;csharp // DELETE this Kaizen.io pattern: int retries = 3; while (retries > 0) { try { return converter.Convert(html); } catch (RateLimitException) { retries--; Thread.Sleep(1000); } }

// IronPDF: Just call the method return renderer.RenderHtmlAsPdf(html).BinaryData; using IronPdf;


Solución de problemas

Asunto 1: HtmlToPdfConverter no encontrado

Problema: la clase <código>HtmlToPdfConverter`no existe en IronPDF.

Solución: Reemplazar con <código>ChromePdfRenderer:

using IronPdf;csharp // Kaizen.io var converter = new HtmlToPdfConverter();

// IronPDF var renderer = new ChromePdfRenderer(); using IronPdf;

Asunto 2: ConversionOptions Not Found

Problema: la clase <código>ConversionOptionsno existe en IronPDF.

Solución: utilice RenderingOptions en el renderizador:

using IronPdf;csharp // Kaizen.io var options = new ConversionOptions { PageSize = PageSize.A4 }; converter.Convert(html, options);

// IronPDF renderer.RenderingOptions.PaperSize = PdfPaperSize.A4; renderer.RenderHtmlAsPdf(html); using IronPdf;

Asunto 3: Los números de página no funcionan

Problema: el pie de página muestra literalmente {total}en lugar del recuento de páginas.

Solución: Actualizar la sintaxis del marcador de posición:

using IronPdf;csharp // Kaizen.io syntax (won't work) "Page {page} of {total}"

//IronPDFsyntax "Page {page} of {total-pages}" using IronPdf;

Edición 4: Método de conversión no encontrado

Problema: el método Convert() no existe en <código>ChromePdfRenderer`.

Solución: utilice RenderHtmlAsPdf() :

using IronPdf;csharp // Kaizen.io var pdfBytes = converter.Convert(html);

// IronPDF var pdf = renderer.RenderHtmlAsPdf(html); var pdfBytes = pdf.BinaryData; using IronPdf;

Número 5: Primera renderización lenta

Problema: la primera generación de PDF tarda entre 1 y 3 segundos.

Solución:IronPDFinicializa Chromium en el primer uso. Calentamiento al inicio de la aplicación:

using IronPdf;csharp // In Program.cs or Startup.cs: new ChromePdfRenderer().RenderHtmlAsPdf(""); using IronPdf;


Lista de comprobación de la migración

Pre-Migración

  • Identificar todos los Kaizen.io using declaraciones
  • Configuración de <código>ConversionOptions`de documentos utilizada
  • Plantillas de encabezado/pie de página y marcadores de posición de notas
  • Lista de ubicaciones de claves API (para eliminar)
  • Verificar la lógica de reintento/límite de velocidad (para eliminar)
  • Obtener la clave de licencia de IronPDF

Cambios en el paquete

  • Eliminar el paquete Kaizen.HtmlToPdf
  • Instalar el paquete NuGet IronPdf : dotnet add package IronPdf
  • Actualizar las importaciones de espacios de nombres

Cambios de código

  • Agregar configuración de clave de licencia al inicio
  • Reemplace <código>HtmlToPdfConverterconChromePdfRenderer`
  • Convertir <código>ConversionOptionsenRenderingOptions`
  • Actualizar Convert() a RenderHtmlAsPdf()
  • Actualizar ConvertUrl() a RenderUrlAsPdf()
  • Actualizar la sintaxis del marcador de posición ( {total}{total de páginas})
  • Reemplace File.WriteAllBytes() con pdf.SaveAs()
  • Eliminar la configuración de la clave API
  • Eliminar la lógica de reintento/límite de velocidad
  • Eliminar el manejo de errores de red para llamadas API

Pruebas

  • Probar todas las rutas de generación de PDF
  • Verificar la representación del encabezado/pie de página
  • Verificar la representación del marcador de posición
  • Validar márgenes y tamaños de página
  • Pruebe la funcionalidad sin conexión (¡nueva capacidad!)
  • Mejora del rendimiento de referencia

Posmigración

  • Eliminar la clave API de Kaizen.io de la configuración
  • Actualizar las variables de entorno
  • Eliminar la configuración del límite de velocidad
  • Monitoreo/alerta de actualizaciones

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