Como migrar de EO.PDF para IronPDF em C#
O EO.Pdf apresenta diversos desafios arquitetônicos que levam as equipes de desenvolvimento a avaliar alternativas. Compreender essas questões é essencial para planejar sua estratégia de migração.
Os problemas do arquivo EO.Pdf
-
Impacto do Chromium Integrado: EO.Pdf (versão atual do NuGet 26.1.34, março de 2026) envia seu próprio renderizador baseado em Chromium, o que aumenta o impacto da instalação em relação a bibliotecas não-Chromium e adiciona peso a imagens do Docker e pipelines de CI/CD.
-
Bagagem de Arquitetura Legada: O conversor HTML para PDF do EO.Pdf foi originalmente construído em um mecanismo Internet Explorer / Trident incorporado antes de o projeto migrar para um renderizador baseado em Chromium. A transição deixou para trás algumas peculiaridades de API e diferenças de comportamento entre versões.
-
Somente Windows no .NET Core: Apesar de ser anunciado como "multiplataforma", a própria documentação do .NET Core da Essential Objects afirma que EO.Pdf suporta .NET Core 3.1+ e .NET 5/6 apenas no Windows — Linux e macOS não são oficialmente suportados.
-
Opções Globais Estáticas: O principal ponto de entrada de HTML para PDF do EO.Pdf é a classe estática
HtmlToPdfcomHtmlToPdf.Optionscompartilhado. Modificar esse estado global de múltiplos threads não é seguro e é difícil em aplicações web multi-tenant. - Licença Comercial Paga: EO.Pdf é vendido em níveis de Licença Única, Pacote de 3 Licenças, Corporativo e Corporativo Plus (sem nível gratuito permanente — apenas um teste de 30 dias com marca d'água). Os preços exatos aparecem na página de pedidos.
Comparação de arquitetura
| Aspecto | EO.Pdf | IronPDF |
|---|---|---|
| Renderizador | Chromium integrado (transitado do IE/Trident) | Chromium incorporado |
| Problemas Legados | Bagagem de migração do IE/Trident | Construído em Chromium desde o início |
| Suporte da plataforma | Somente Windows no .NET Core | Windows, Linux, macOS, Docker, Azure |
| Configuração | Estático HtmlToPdf.Options (não seguro para threads) |
Baseado em instância ChromePdfRenderer (seguro para threads) |
| Design de API | Misto (HtmlToPdf estático + modelo de objeto ACM) |
Unificado ChromePdfRenderer + HTML/CSS |
| Modelo de licença | Único / 3-licenças / Corporativo / Corporativo Plus (teste de 30 dias) | Comercial por desenvolvedor; teste de desenvolvedor gratuito |
| .NET moderno | .NET Framework + .NET Core 3.1+ (somente Windows) | .NET Framework, .NET 6/7/8/9 multiplataforma |
| Suporte assíncrono | Limitado | Completo RenderHtmlAsPdfAsync / RenderUrlAsPdfAsync |
Principais benefícios da migração
- Multiplataforma no .NET Core / .NET 6+: Funciona no Linux, macOS e Docker — não apenas no Windows
- Configuração Segura para Threads: Opções de renderizador baseadas em instâncias em vez de globais estáticos
- API Moderna: Nomes de métodos consistentes —
RenderHtmlAsPdf,RenderUrlAsPdf,PdfDocument.Merge - Suporte Total a Async:
RenderHtmlAsPdfAsynceRenderUrlAsPdfAsyncpara pipelines não bloqueantes - Documentação: Tutoriais extensivos, guias de como fazer e uma referência de objetos ativa
Preparação pré-migratória
Pré-requisitos
Certifique-se de que seu ambiente atenda a estes requisitos:
- .NET Framework 4.6.2 ou superior ou .NET Core 3.1 / .NET 5-9
- Visual Studio 2019 ou superior ou VS Code com extensão C#
- Acesso ao Gerenciador de Pacotes NuGet
- Chave de licença do IronPDF(teste gratuito disponível em IronPDF )
Uso do arquivo Audit EO.Pdf
Execute estes comandos no diretório da sua solução para identificar todas as referências a EO.Pdf:
# Find all EO.Pdf references
grep -r "EO.Pdf\|HtmlToPdf\|AcmRender\|PdfDocument" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "EO.Pdf"
# Find all EO.Pdf references
grep -r "EO.Pdf\|HtmlToPdf\|AcmRender\|PdfDocument" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "EO.Pdf"
Namespaces comuns de EO.Pdf a serem procurados:
EO.Pdf- HTML para PDF básicoEO.Pdf.Acm- Modelo de Conteúdo Avançado (ACM)EO.Pdf.Contents- Manipulação de conteúdo de baixo nívelEO.Pdf.Drawing- Operações gráficas
Entendendo a mudança no padrão central
A diferença arquitetônica mais significativa entre EO.Pdf e IronPDF reside no escopo de configuração. O arquivo EO.Pdf utiliza métodos estáticos com opções globais que afetam todas as conversões — um padrão que causa problemas de segurança de threads em aplicações web. O IronPDF utiliza renderizadores baseados em instâncias com opções locais, garantindo que cada conversão seja isolada.
Processo de migração passo a passo
Passo 1: Atualizar pacotes NuGet
Remova o arquivo EO.Pdf e instale o IronPDF:
# Remove EO.Pdf
dotnet remove package EO.Pdf
# Install IronPDF
dotnet add package IronPdf
# Remove EO.Pdf
dotnet remove package EO.Pdf
# Install IronPDF
dotnet add package IronPdf
Etapa 2: Atualizar referências de namespace
Substitua os namespaces EO.Pdf por IronPDF:
// Remove these
using EO.Pdf;
using EO.Pdf.Acm;
// Add this
using IronPdf;
// Remove these
using EO.Pdf;
using EO.Pdf.Acm;
// Add this
using IronPdf;
Imports IronPdf
Etapa 3: Configurar a 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"
Referência completa para migração de API
Mapeamento de Classes Principais
| Classe EO.Pdf | Equivalente ao IronPDF |
|---|---|
HtmlToPdf |
ChromePdfRenderer |
PdfDocument |
PdfDocument |
HtmlToPdfOptions |
ChromePdfRenderOptions |
AcmRender |
Não é necessário |
AcmText |
HTML <span>, <p> |
AcmBlock |
HTML |
Mapeamento de Métodos
| Método EO.Pdf | Método IronPDF |
|---|---|
HtmlToPdf.ConvertHtml(html, path) |
renderer.RenderHtmlAsPdf(html) então SaveAs(path) |
HtmlToPdf.ConvertUrl(url, path) |
renderer.RenderUrlAsPdf(url) então SaveAs(path) |
PdfDocument.Save(path) |
pdf.SaveAs(path) |
new PdfDocument(path) |
PdfDocument.FromFile(path) |
PdfDocument.Merge(doc1, doc2) (estático) |
PdfDocument.Merge(doc1, doc2) (estático) |
Mapeamento de opções
| Opção EO.Pdf | Opções de renderização do IronPDF |
|---|---|
Options.PageSize = PdfPageSizes.A4 |
PaperSize = PdfPaperSize.A4 |
Options.OutputArea (RectangleF) |
MarginTop, MarginBottom, etc. |
Exemplos de migração de código
Conversão de HTML para PDF
A conversão fundamental de HTML para PDF demonstra a mudança de métodos estáticos para renderização baseada em instâncias.
Implementação do EO.Pdf:
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";
HtmlToPdf.ConvertHtml(html, "output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";
HtmlToPdf.ConvertHtml(html, "output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports EO.Pdf
Imports System
Class Program
Shared Sub Main()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>"
HtmlToPdf.ConvertHtml(html, "output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
Implementação do IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF generated from HTML.</p></body></html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
O padrão de dois passos do IronPDF(renderizar, depois salvar) fornece acesso ao objeto PdfDocument para manipulação adicional antes de salvar. Para mais opções, consulte a documentação de conversão de HTML para PDF .
Conversão de URL para PDF
Implementação do EO.Pdf:
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
string url = "https://www.example.com";
HtmlToPdf.ConvertUrl(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
string url = "https://www.example.com";
HtmlToPdf.ConvertUrl(url, "webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports EO.Pdf
Imports System
Module Program
Sub Main()
Dim url As String = "https://www.example.com"
HtmlToPdf.ConvertUrl(url, "webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Module
Implementação do IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string url = "https://www.example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string url = "https://www.example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim url As String = "https://www.example.com"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Class
O RenderUrlAsPdf do IronPDF oferece execução total de JavaScript e suporte moderno a CSS. Para mais opções, consulte o link para a documentação em PDF .
Arquivo HTML com configurações personalizadas
Este exemplo demonstra a diferença crítica nos padrões de configuração — o OutputArea do EO.Pdf com polegadas versus as propriedades de margem individual do IronPDF em milímetros.
Implementação do EO.Pdf:
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
HtmlToPdfOptions options = new HtmlToPdfOptions();
options.PageSize = PdfPageSizes.A4;
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options);
Console.WriteLine("PDF with custom settings created.");
}
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
HtmlToPdfOptions options = new HtmlToPdfOptions();
options.PageSize = PdfPageSizes.A4;
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options);
Console.WriteLine("PDF with custom settings created.");
}
}
Imports EO.Pdf
Imports System
Class Program
Shared Sub Main()
Dim options As New HtmlToPdfOptions()
options.PageSize = PdfPageSizes.A4
options.OutputArea = New RectangleF(0.5F, 0.5F, 7.5F, 10.5F)
HtmlToPdf.ConvertUrl("file:///C:/input.html", "output.pdf", options)
Console.WriteLine("PDF with custom settings created.")
End Sub
End Class
Implementação do IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
var pdf = renderer.RenderHtmlFileAsPdf("C:/input.html");
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF with custom settings created.");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
var pdf = renderer.RenderHtmlFileAsPdf("C:/input.html");
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF with custom settings created.");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
Dim pdf = renderer.RenderHtmlFileAsPdf("C:/input.html")
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF with custom settings created.")
End Sub
End Class
Observe a conversão de unidades: EO.Pdf usa polegadas em OutputArea, enquanto IronPDF usa milímetros. Converter usando: inches × 25.4 = mm. Para mais opções, consulte a documentação de opções de renderização .
Unir vários PDFs
Ambas as bibliotecas expõem um PdfDocument.Merge estático para combinar documentos — EO.Pdf não tem método de instância Append, então qualquer código usando doc.Append(other) é inválido e precisa ser movido para Merge.
Implementação do EO.Pdf:
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
PdfDocument doc1 = new PdfDocument("file1.pdf");
PdfDocument doc2 = new PdfDocument("file2.pdf");
// EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
PdfDocument mergedDoc = PdfDocument.Merge(doc1, doc2);
mergedDoc.Save("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
// NuGet: Install-Package EO.Pdf
using EO.Pdf;
using System;
class Program
{
static void Main()
{
PdfDocument doc1 = new PdfDocument("file1.pdf");
PdfDocument doc2 = new PdfDocument("file2.pdf");
// EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
PdfDocument mergedDoc = PdfDocument.Merge(doc1, doc2);
mergedDoc.Save("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports EO.Pdf
Imports System
Module Program
Sub Main()
Dim doc1 As New PdfDocument("file1.pdf")
Dim doc2 As New PdfDocument("file2.pdf")
' EO.Pdf has no Append; merge is a static method that returns a new PdfDocument.
Dim mergedDoc As PdfDocument = PdfDocument.Merge(doc1, doc2)
mergedDoc.Save("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Module
Implementação do IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
merged.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully!");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(New List(Of PdfDocument) From {pdf1, pdf2})
merged.SaveAs("merged.pdf")
Console.WriteLine("PDFs merged successfully!")
End Sub
End Module
O Merge estático do IronPDF aceita uma lista de documentos ou um List. Observe a mudança do construtor (new PdfDocument(path)) para a fábrica estática (PdfDocument.FromFile(path)). Para mais opções, consulte a documentação sobre mesclagem de PDFs .
Notas críticas sobre migração
Conversão de Unidades de Margem
EO.Pdf usa polegadas em OutputArea. O IronPDF usa milímetros. Converter usando: inches × 25.4 = mm
// EO.Pdf - 0.5 inch margins
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
//IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;
// EO.Pdf - 0.5 inch margins
options.OutputArea = new RectangleF(0.5f, 0.5f, 7.5f, 10.5f);
//IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7;
renderer.RenderingOptions.MarginBottom = 12.7;
renderer.RenderingOptions.MarginLeft = 12.7;
renderer.RenderingOptions.MarginRight = 12.7;
' EO.Pdf - 0.5 inch margins
options.OutputArea = New RectangleF(0.5F, 0.5F, 7.5F, 10.5F)
' IronPDF- equivalent in millimeters (0.5" = 12.7mm)
renderer.RenderingOptions.MarginTop = 12.7
renderer.RenderingOptions.MarginBottom = 12.7
renderer.RenderingOptions.MarginLeft = 12.7
renderer.RenderingOptions.MarginRight = 12.7
Configuração estática para configuração baseada em instâncias
Substitua todos os HtmlToPdf.Options.X por renderer.RenderingOptions.X:
// EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;
//IronPDF- instance options (thread-safe)
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4;
//IronPDF- instance options (thread-safe)
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' EO.Pdf - static options (NOT thread-safe!)
HtmlToPdf.Options.PageSize = PdfPageSizes.A4
' IronPDF- instance options (thread-safe)
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Migração de ACM para HTML
Se estiver usando o Modelo de Conteúdo Avançado do EO.Pdf (AcmRender, AcmText, AcmBlock), migre para HTML/CSS padrão:
// EO.Pdf ACM approach
var acmContent = new AcmContent();
acmContent.Add(new AcmText("Sample Text"));
//IronPDF HTML approach
var html = "<div>Sample Text</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// EO.Pdf ACM approach
var acmContent = new AcmContent();
acmContent.Add(new AcmText("Sample Text"));
//IronPDF HTML approach
var html = "<div>Sample Text</div>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
' EO.Pdf ACM approach
Dim acmContent As New AcmContent()
acmContent.Add(New AcmText("Sample Text"))
' IronPDF HTML approach
Dim html As String = "<div>Sample Text</div>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
Padrão de economia em duas etapas
EO.Pdf salva diretamente em ConvertHtml().IronPDF retorna um objeto PdfDocument, então você chama SaveAs():
// EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf");
//IronPDF- two steps (enables manipulation before save)
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf");
//IronPDF- two steps (enables manipulation before save)
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
' EO.Pdf - one step
HtmlToPdf.ConvertHtml(html, "output.pdf")
' IronPDF- two steps (enables manipulation before save)
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Construtor para Fábrica Estática
Substitua new PdfDocument(path) por PdfDocument.FromFile(path):
// EO.Pdf
var doc = new PdfDocument("file.pdf");
// IronPDF
var doc = PdfDocument.FromFile("file.pdf");
// EO.Pdf
var doc = new PdfDocument("file.pdf");
// IronPDF
var doc = PdfDocument.FromFile("file.pdf");
' EO.Pdf
Dim doc = New PdfDocument("file.pdf")
' IronPDF
Dim doc = PdfDocument.FromFile("file.pdf")
Lista de verificação pós-migração
Após concluir a migração do código, verifique o seguinte:
- Comparação visual dos PDFs gerados
- Verificar se os cabeçalhos/rodapés estão sendo exibidos corretamente.
- Testar as configurações de segurança/criptografia
- Validar operações de mesclagem
- Análise comparativa de desempenho
- Testes multiplataforma (Windows, Linux, macOS)
- Remover arquivos de licença EO.Pdf
- Atualizar documentação
Recursos adicionais
- Documentação do IronPDF
- Tutoriais de HTML para PDF
- Referência da API
- Pacote NuGet
- Opções de licenciamento
A migração do EO.Pdf para o IronPDF aborda as preocupações legadas do IE/Trident e a segurança de threads das opções globais estáticas do EO.Pdf. A transição para configuração baseada em instâncias garante que seu código de geração de PDF funcione de forma confiável sob carga concorrente, enquanto o suporte multiplataforma do IronPDF estende a implantação além do Windows para Linux, macOS e Docker.

