Ir para o conteúdo do rodapé
GUIAS DE MIGRAçãO

Como migrar do Kaizen.io para o IronPDF em C#

A migração do Kaizen.io HTML-to-PDF para o IronPDF transforma seu fluxo de trabalho de PDF .NET , de um serviço dependente da nuvem com latência de rede e preocupações com a privacidade dos dados, para uma biblioteca local integrada ao processo, que mantém seus dados dentro da sua infraestrutura. Este guia fornece um caminho de migração abrangente, passo a passo, que elimina as dependências de APIs externas e a cobrança por solicitação para desenvolvedores .NET profissionais.

Por que migrar do Kaizen.io para o IronPDF?

Os desafios das APIs baseadas em nuvem

O serviço de conversão de HTML para PDF da Kaizen.io, assim como outros serviços de PDF baseados em nuvem, apresenta limitações que afetam aplicações em produção:

  1. Dependência da nuvem: Requer conexão constante com a internet e disponibilidade de serviços externos. Se o serviço Kaizen.io ficar indisponível, a geração de PDFs do seu aplicativo deixará de funcionar.

  2. Preocupações com a privacidade dos dados: Conteúdo HTML sensível — incluindo dados de clientes, relatórios financeiros e documentos confidenciais — precisa ser transmitido para servidores de terceiros para processamento.

  3. Latência de rede: Cada geração de PDF acarreta atrasos de ida e volta na rede de 100 a 500 ms ou mais, adicionando uma sobrecarga significativa aos tempos de resposta do seu aplicativo.

  4. Preços por solicitação: os custos aumentam diretamente com o volume de uso, tornando a geração de PDFs em grande volume cada vez mais cara.

  5. Limitação de taxa: a limitação da API durante períodos de alto tráfego pode causar falhas ou atrasos na geração de PDFs quando você mais precisa deles.

  6. Dependência de fornecedor: alterações na API ou risco de descontinuação do serviço deixam seu aplicativo vulnerável a decisões comerciais externas.

Comparação entre Kaizen.io e IronPDF

Recurso Kaizen.io IronPDF
Processamento Nuvem (servidores externos) Local (em processo)
Privacidade de dados Dados transmitidos externamente Os dados nunca saem da sua infraestrutura.
Latência Tempo de ida e volta da rede (100-500ms+) Processamento local (50-200ms)
Disponibilidade Depende de serviço externo 100% sob seu controle
Preços Sob encomenda ou por assinatura Licença única ou anual
Modo offline Não é possível. Funcionalidade completa
Limites de taxa Limitação de API Sem limites
JavaScript Suporte limitado Execução completa do Chromium

Para equipes que planejam a adoção do .NET 10 e do C# 14 até 2025 e 2026, o IronPDF oferece uma base preparada para o futuro com processamento local que elimina a dependência de serviços externos.


Avaliação da Complexidade da Migração

Esforço estimado por funcionalidade

Recurso Complexidade da Migração
HTML básico para PDF Muito baixo
Arquivo HTML para PDF Muito baixo
URL para PDF Muito baixo
Cabeçalhos/Rodapés Baixo
Configurações da página Muito baixo
Gerenciamento de chaves de API Baixo

Mudança de paradigma

A mudança fundamental nesta migração para o Kaizen.io é a transição de chamadas à API na nuvem para a renderização local no mesmo processo:

Kaizen.io: HtmlToPdfConverter → Convert(html) → byte[] (via rede)
IronPDF: ChromePdfRenderer → RenderHtmlAsPdf(html) → PdfDocument (local)

Antes de começar

Pré-requisitos

  1. Ambiente .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Acesso ao NuGet : Capacidade de instalar pacotes NuGet.
  3. Licença do IronPDF : Obtenha sua chave de licença em IronPDF

Alterações no pacote NuGet

# Remove Kaizen.io package
dotnet remove package Kaizen.HtmlToPdf
dotnet remove package Kaizen.IO.HtmlToPdf

# Install IronPDF
dotnet add package IronPdf
# Remove Kaizen.io package
dotnet remove package Kaizen.HtmlToPdf
dotnet remove package Kaizen.IO.HtmlToPdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuração de licença

// 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";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Identificar o uso do Kaizen.io

# Find all Kaizen.io references
grep -r "using Kaizen\|HtmlToPdfConverter\|ConversionOptions" --include="*.cs" .
grep -r "ConvertUrl\|ConvertHtml\|Kaizen" --include="*.cs" .
# Find all Kaizen.io references
grep -r "using Kaizen\|HtmlToPdfConverter\|ConversionOptions" --include="*.cs" .
grep -r "ConvertUrl\|ConvertHtml\|Kaizen" --include="*.cs" .
SHELL

Referência completa da API

Mapeamentos de Classes

Aula Kaizen.io Equivalente ao IronPDF
HtmlToPdfConverter ChromePdfRenderer
ConversionOptions ChromePdfRenderOptions
HeaderOptions HtmlHeaderFooter ou TextHeaderFooter
FooterOptions HtmlHeaderFooter ou TextHeaderFooter
PageSize PdfPaperSize
Orientation PdfPaperOrientation

Mapeamentos de Métodos

Método Kaizen.io Equivalente ao IronPDF
converter.Convert(html) renderer.RenderHtmlAsPdf(html)
converter.ConvertUrl(url) renderer.RenderUrlAsPdf(url)
File.WriteAllBytes(path, bytes) pdf.SaveAs(path)

Mapeamentos de propriedades do ConversionOptions

Propriedade Kaizen.io Equivalente ao IronPDF
PageSize RenderingOptions.PaperSize
Orientation RenderingOptions.PaperOrientation
MarginTop RenderingOptions.MarginTop
MarginBottom RenderingOptions.MarginBottom
Header.HtmlContent RenderingOptions.HtmlHeader.HtmlFragment
Footer.HtmlContent RenderingOptions.HtmlFooter.HtmlFragment

Mapeamentos de espaço reservado

Espaço reservado para Kaizen.io Espaço reservado para IronPDF
{page} {page}
{total} {total-pages}
{date} {date}
{title} {html-title}

Exemplos de migração de código

Exemplo 1: HTML básico para PDF

Antes (Kaizen.io):

using Kaizen.IO;
using System.IO;

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

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

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        Dim html = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdfBytes = converter.Convert(html)
        File.WriteAllBytes("output.pdf", pdfBytes)
    End Sub
End Class
$vbLabelText   $csharpLabel

Após (IronPDF):

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

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");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;

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");
    }
}
Imports IronPdf
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim html = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

A abordagem Kaizen.io cria um HtmlToPdfConverter, chama Convert() para obter uma matriz de bytes e, em seguida, grava manualmente os bytes em um arquivo usando File.WriteAllBytes(). Isso envolve uma requisição de ida e volta pela rede para o serviço em nuvem Kaizen.io.

O ChromePdfRenderer do IronPDF processa tudo localmente. O método RenderHtmlAsPdf() retorna um objeto PdfDocument com um método SaveAs() conveniente — sem necessidade de manipulação manual de matrizes de bytes e sem latência de rede. Consulte a documentação de conversão de HTML para PDF para obter opções de renderização adicionais.

Exemplo 2: Converter arquivo HTML para PDF com configurações de página

Antes (Kaizen.io):

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 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);
    }
}
Imports Kaizen.IO
Imports System
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New HtmlToPdfConverter()
        Dim htmlContent = File.ReadAllText("input.html")
        Dim options = New ConversionOptions With {
            .PageSize = PageSize.A4,
            .Orientation = Orientation.Portrait
        }
        Dim pdfBytes = converter.Convert(htmlContent, options)
        File.WriteAllBytes("document.pdf", pdfBytes)
    End Sub
End Class
$vbLabelText   $csharpLabel

Após (IronPDF):

// 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");
    }
}
// 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");
    }
}
Imports IronPdf
Imports System
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
        pdf.SaveAs("document.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

A abordagem do Kaizen.io requer a leitura manual do conteúdo do arquivo HTML com File.ReadAllText(), a criação de um objeto ConversionOptions separado, a passagem de ambos para o método Convert() e, em seguida, a gravação manual dos bytes resultantes em um arquivo.

O IronPDF fornece um método dedicado RenderHtmlFileAsPdf() que lê o arquivo diretamente — nenhuma leitura manual do arquivo é necessária. A configuração é definida na propriedade RenderingOptions do renderizador, mantendo todas as configurações em um só lugar. Os enums PdfPaperSize.A4 e PdfPaperOrientation.Portrait correspondem diretamente aos equivalentes do Kaizen.io.

Exemplo 3: URL para PDF com cabeçalhos e rodapés

Antes (Kaizen.io):

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 = "<div style='text-align:center'>Company Header</div>" },
            Footer = new FooterOptions { HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>" },
            MarginTop = 20,
            MarginBottom = 20
        };
        var pdfBytes = converter.ConvertUrl("https://example.com", options);
        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
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 = "<div style='text-align:center'>Company Header</div>" },
            Footer = new FooterOptions { HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>" },
            MarginTop = 20,
            MarginBottom = 20
        };
        var pdfBytes = converter.ConvertUrl("https://example.com", options);
        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
Imports Kaizen.IO
Imports System
Imports System.IO

Module Program
    Sub Main()
        Dim converter As New HtmlToPdfConverter()
        Dim options As New ConversionOptions With {
            .Header = New HeaderOptions With {.HtmlContent = "<div style='text-align:center'>Company Header</div>"},
            .Footer = New FooterOptions With {.HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>"},
            .MarginTop = 20,
            .MarginBottom = 20
        }
        Dim pdfBytes = converter.ConvertUrl("https://example.com", options)
        File.WriteAllBytes("webpage.pdf", pdfBytes)
    End Sub
End Module
$vbLabelText   $csharpLabel

Após (IronPDF):

// 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");
    }
}
// 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");
    }
}
Imports IronPdf
Imports System
Imports System.IO

Module Program
    Sub Main()
        Dim renderer As 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
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("webpage.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

Este exemplo demonstra várias diferenças importantes na migração. Kaizen.io requer objetos HeaderOptions e FooterOptions aninhados dentro de ConversionOptions, cada um com uma propriedade HtmlContent. IronPDF oferece uma configuração mais limpa para TextHeader e TextFooter com propriedades dedicadas para CenterText, LeftText e RightText.

Nota importante: A sintaxe do marcador de posição é diferente! Kaizen.io usa {total} para contagem total de páginas, enquanto IronPDF usa {total-pages}. Este é o problema de migração mais comum: procure em sua base de código por {total} e substitua por {total-pages}.

O método RenderUrlAsPdf() do IronPDF renderiza diretamente qualquer URL com execução completa de JavaScript por meio do mecanismo Chromium — sem necessidade de soluções alternativas. Saiba mais sobre conversão de URL para PDF e cabeçalhos e rodapés .


Notas críticas sobre migração

Alteração de sintaxe do marcador de posição

A mudança mais importante na migração de cabeçalhos e rodapés é a sintaxe dos espaços reservados:

// Kaizen.io placeholders:
"Page {page} of {total}"

// IronPDF placeholders:
"Page {page} of {total-pages}"
// Kaizen.io placeholders:
"Page {page} of {total}"

// IronPDF placeholders:
"Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

Mapeamento completo de espaços reservados:

  • {page}{page} (igual)
  • {total}{total-pages} (DIFERENTE!)
  • {title}{html-title} (DIFERENTE!)
  • {date}{date} (igual)
  • {time}{time} (igual)

Alteração do tipo de retorno

Kaizen.io retorna byte[] diretamente. IronPDF retorna um objeto PdfDocument:

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

// IronPDF returns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");           // Direct save
byte[] bytes = pdf.BinaryData;      // Or get bytes if needed
// Kaizen.io returns byte[]
byte[] pdfBytes = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdfBytes);

// IronPDF returns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");           // Direct save
byte[] bytes = pdf.BinaryData;      // Or get bytes if needed
' Kaizen.io returns Byte()
Dim pdfBytes As Byte() = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdfBytes)

' IronPDF returns PdfDocument
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")           ' Direct save
Dim bytes As Byte() = pdf.BinaryData ' Or get bytes if needed
$vbLabelText   $csharpLabel

Remover o gerenciamento de chaves de API

A Kaizen.io exige autenticação por chave de API por solicitação. O IronPDF utiliza uma chave de licença definida uma única vez na inicialização do aplicativo:

// 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
// 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
' DELETE this Kaizen.io pattern:
Dim converter = New HtmlToPdfConverter("YOUR_API_KEY")

' IronPDF: Set once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer = New ChromePdfRenderer()  ' No API key needed
$vbLabelText   $csharpLabel

Excluir tratamento de erros de rede

Remover a lógica de repetição, o tratamento de limites de taxa e o código de tempo limite de rede — o IronPDF processa localmente:

// 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;
// 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;
' DELETE this Kaizen.io pattern:
Dim retries As Integer = 3
While retries > 0
    Try
        Return converter.Convert(html)
    Catch ex As RateLimitException
        retries -= 1
        Thread.Sleep(1000)
    End Try
End While

' IronPDF: Just call the method
Return renderer.RenderHtmlAsPdf(html).BinaryData
$vbLabelText   $csharpLabel

Solução de problemas

Problema 1: Conversor HtmlToPdf não encontrado

Problema: a classe HtmlToPdfConverter não existe no IronPDF.

Solução: Substitua por ChromePdfRenderer:

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

// IronPDF
var renderer = new ChromePdfRenderer();
// Kaizen.io
var converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
' Kaizen.io
Dim converter As New HtmlToPdfConverter()

' IronPDF
Dim renderer As New ChromePdfRenderer()
$vbLabelText   $csharpLabel

Problema 2: Opções de conversão não encontradas

Problema: a classe ConversionOptions não existe no IronPDF.

Solução: Use RenderingOptions no renderizador:

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

// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderHtmlAsPdf(html);
// Kaizen.io
var options = new ConversionOptions { PageSize = PageSize.A4 };
converter.Convert(html, options);

// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderHtmlAsPdf(html);
' Kaizen.io
Dim options As New ConversionOptions With {.PageSize = PageSize.A4}
converter.Convert(html, options)

' IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

Problema 3: Números de página não funcionam

Problema: O rodapé exibe o texto literal {total} em vez da contagem de páginas.

Solução: Atualize a sintaxe do marcador de posição:

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

// IronPDF syntax
"Page {page} of {total-pages}"
// Kaizen.io syntax (won't work)
"Page {page} of {total}"

// IronPDF syntax
"Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

Problema 4: Método de conversão não encontrado

Problema: o método Convert() não existe em ChromePdfRenderer.

Solução: Use RenderHtmlAsPdf():

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

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdf.BinaryData;
// Kaizen.io
var pdfBytes = converter.Convert(html);

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdf.BinaryData;
' Kaizen.io
Dim pdfBytes = converter.Convert(html)

' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim pdfBytes = pdf.BinaryData
$vbLabelText   $csharpLabel

Problema 5: Primeira renderização lenta

Problema: A primeira geração do PDF leva de 1 a 3 segundos.

Solução: O IronPDF inicializa o Chromium no primeiro uso. Aquecimento na inicialização do aplicativo:

// In Program.cs or Startup.cs:
new ChromePdfRenderer().RenderHtmlAsPdf("<html></html>");
// In Program.cs or Startup.cs:
new ChromePdfRenderer().RenderHtmlAsPdf("<html></html>");
' In Program.vb or Startup.vb:
Call New ChromePdfRenderer().RenderHtmlAsPdf("<html></html>")
$vbLabelText   $csharpLabel

Lista de verificação para migração

Pré-migração

  • Identifique todas as declarações using do Kaizen.io
  • Documento ConversionOptions configurações usadas
  • Observe os modelos de cabeçalho/rodapé e os espaços reservados.
  • Listar locais das chaves de API (a remover)
  • Verificar lógica de repetição/limitação de taxa (para exclusão)
  • Obtenha a chave de licença do IronPDF

Alterações no pacote

  • Remover o pacote Kaizen.HtmlToPdf
  • Instale o pacote NuGet IronPdf: dotnet add package IronPdf
  • Atualizar importações de namespace

Alterações no código

  • Adicionar configuração de chave de licença na inicialização
  • Substitua HtmlToPdfConverter por ChromePdfRenderer
  • Converter ConversionOptions para RenderingOptions
  • Atualizar Convert() para RenderHtmlAsPdf()
  • Atualizar ConvertUrl() para RenderUrlAsPdf()
  • Atualizar sintaxe do marcador de posição ({total}{total-pages})
  • Substitua File.WriteAllBytes() por pdf.SaveAs()
  • Remover configuração da chave de API
  • Excluir lógica de repetição/limitação de taxa
  • Remover o tratamento de erros de rede para chamadas de API.

Testando

  • Testar todos os caminhos de geração de PDF
  • Verificar a renderização do cabeçalho/rodapé
  • Verificar renderização de espaço reservado
  • Validar margens e tamanhos de página
  • Teste a funcionalidade offline (nova funcionalidade!)
  • Melhoria do desempenho de referência

Pós-migração

  • Remover a chave da API Kaizen.io da configuração
  • Atualizar variáveis ​​de ambiente
  • Remover configuração de limite de taxa
  • Atualizar monitoramento/alertas

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim