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

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

Migrar de Kaizen.io a IronPDF: Guía completa de migración a 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 relativas a la privacidad de los datos: El contenido HTML sensible, incluidos los datos de los clientes, los informes financieros y los documentos confidenciales, debe transmitirse a servidores de terceros para su procesamiento.

  3. Latencia de red: Cada generación de PDF incurre en retrasos de ida y vuelta de red de 100-500 ms o más, lo que añade una sobrecarga significativa a los tiempos de respuesta de su aplicación.

  4. Precios por solicitud: Los costes se escalan directamente con el volumen de uso, lo que hace que la generación de PDF de gran volumen sea cada vez más cara.

  5. Rate Limiting: La estrangulación de la API durante periodos de mucho tráfico puede provocar fallos en la generación de PDF o retrasos cuando más los necesitas.

  6. Vendor Lock-In: Los cambios de API o el riesgo de interrupción del servicio dejan su aplicación vulnerable a decisiones empresariales externas.

Comparación entre Kaizen.io y IronPDF

CaracterísticaKaizen.ioIronPDF
ProcesamientoNube (servidores externos)Local (en proceso)
Privacidad de datosDatos transmitidos externamenteLos datos nunca salen de su infraestructura
LatenciaRed de ida y vuelta (100-500ms+)Procesamiento local (50-200ms)
DisponibilidadDepende de un servicio externo100% bajo su control
PreciosPor solicitud o suscripciónLicencia única o anual
Modo sin conexiónNo es posibleFuncionalidad completa
Límites de tarifaEstrangulamiento de APISin límites
JavaScriptAsistencia limitadaEjecució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ísticaComplejidad de la migraciónNotas
HTML básico a PDFMuy bajoSustitución directa de métodos
Archivo HTML a PDFMuy bajoSustitución directa de métodos
URL a PDFMuy bajoSustitución directa de métodos
Encabezados/pies de páginaBajoCambio de sintaxis del marcador de posición
Configuración de la páginaMuy bajoMapeo de propiedades
Gestión de claves APIBajoEliminar por completo

Cambio de paradigma

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

using IronPdf; Kaizen.io: HtmlToPdfConverter → Convert(html) → byte[] (vía red) IronPDF: ChromePdfRenderer → RenderHtmlAsPdf(html) → PdfDocument (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 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.ioEquivalente de IronPDFNotas
<código>HtmlToPdfConverter</código<código>ChromePdfRenderer</códigoConversor principal
<código>ConversionOptions</código<código>ChromePdfRenderOptions</códigoA través de RenderingOptions
<código>HeaderOptions</códigoHtmlHeaderFooter o TextHeaderFooterEncabezados HTML/texto
<código>FooterOptions</códigoHtmlHeaderFooter o TextHeaderFooterPies de página HTML/texto
<código>TamañoDePágina</código<código>TamañoDelPapel</códigoEnumeración del tamaño del papel
OrientaciónOrientación del documento pdfEnum de orientación

Métodos

Método Kaizen.ioEquivalente de IronPDFNotas
converter.Convert(html)renderer.RenderHtmlAsPdf(html)Devuelve PdfDocument
<código>converter.ConvertUrl(url)</código<código>renderer.RenderUrlAsPdf(url)</códigoSoporte directo de URL
<código>File.WriteAllBytes(ruta, bytes)</código<código>pdf.SaveAs(ruta)</códigoMétodo de guardado directo

Mapeo de propiedades de ConversionOptions

Propiedad de Kaizen.ioEquivalente de IronPDFNotas
<código>TamañoDePágina</código<código>RenderingOptions.PaperSize</códigoValor de enum
Orientación<código>RenderingOptions.PaperOrientation</códigoRetrato/Paisaje
<código>MarginTop</código<código>RenderingOptions.MarginTop</códigoEn milímetros
MargenInferior<código>RenderingOptions.MarginBottom</códigoEn milímetros
<código>Header.HtmlContent</código<código>RenderingOptions.HtmlHeader.HtmlFragment</códigoEncabezado HTML
Pie de página.HtmlContent<código>RenderingOptions.HtmlFooter.HtmlFragment</códigoPie de página HTML

Mapeo de marcadores

Kaizen.io Marcador de posiciónMarcador de posición IronPDFNotas
{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>ChromePdfRenderer</códigodeIronPDFprocesa todo localmente. El método RenderHtmlAsPdf() devuelve un objeto PdfDocument con un práctico método SaveAs(), 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>ConversionOptions</códigoindependiente, pasar ambos al método Convert() 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>HeaderOptions</códigoy <código>FooterOptions</códigoanidados dentro de ConversionOptions, cada uno con una propiedad HtmlContent.IronPDFproporciona una configuración más limpia de TextHeader y TextFooter con propiedades CenterText, LeftText y RightText dedicadas.

Nota Crítica: ¡La sintaxis de los marcadores 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</códigono existe en IronPDF.

Solución: Sustituir por 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>ConversionOptions</códigono existe en IronPDF.

Solución: Utilizar 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 {total}literal en lugar del recuento de páginas.

Solución: Actualizar la sintaxis de los marcadores 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 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 todas las declaraciones using de Kaizen.io
  • [ ] Ajustes <código>ConversionOptions</códigodel documento utilizados
  • [ ] Tenga en cuenta las plantillas de encabezado/pie de página y los marcadores de posición
  • [ ] Lista de ubicaciones de claves API (para eliminar)
  • [ ] Comprobar 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
  • [Instale el paquete NuGet IronPdf: dotnet add package IronPdf
  • [ ] Actualizar las importaciones de espacios de nombres

Cambios de código

  • [ ] Añadir configuración de clave de licencia al inicio
  • [Reemplace <código>HtmlToPdfConverter</códigopor ChromePdfRenderer
  • [ ] Convertir <código>ConversionOptions</códigoen RenderingOptions
  • [ ] Actualizar Convert() a RenderHtmlAsPdf()
  • [Actualizar ConvertUrl() a RenderUrlAsPdf()
  • [ ] Actualizar la sintaxis de los marcadores de posición ({total}{total-pages})
  • [Reemplace File.WriteAllBytes() por pdf.SaveAs()
  • [ ] Eliminar la configuración de la clave API
  • [ ] Borrar lógica de reintento/límite de velocidad
  • [ ] Eliminar la gestión de errores de red en las llamadas a la API

Pruebas

  • [ ] Probar todas las rutas de generación de PDF
  • [ ] Verificar el renderizado de encabezado/pie de página
  • [ ] Comprobar la representación del marcador de posición
  • [ ] Validación de márgenes y tamaños de página
  • [ ] Probar la funcionalidad offline (¡nueva capacidad!)
  • [ ] Mejora del rendimiento de referencia

Posmigración

  • [ ] Eliminar la clave API de Kaizen.io de la configuración
  • [Actualización de variables de entorno
  • [ ] Eliminar la configuración del límite de velocidad
  • [ ] Monitorización/alerta de actualizaciones

Conclusión

La migración de Kaizen.io aIronPDFelimina la dependencia de la nube, la latencia de la red y las preocupaciones por la privacidad de los datos, al tiempo que proporciona costes de licencia predecibles. El cambio de paradigma de las llamadas a la API en la nube al renderizado local en proceso significa que la generación de PDF es más rápida, fiable y está completamente bajo su control.

Los cambios clave en esta migración son:

  1. Procesamiento: Nube (servidores externos) → Local (en proceso)
  2. Clase: <código>HtmlToPdfConverter</código→ ChromePdfRenderer
  3. Método: Convertir()RenderizarHtmlAsPdf()
  4. Opciones: <código>ConversionOptions</código→ RenderingOptions
  5. Placeholder: {total}{total-pages}
  6. API Key: Por solicitud → Clave de licencia al inicio

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

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