Como migrar do XFINIUM.PDF para o IronPDF em C#
XFINIUM.PDF é uma biblioteca comercial de PDF multiplataforma, desenvolvida pela O2 Solutions, que oferece ferramentas para criar e editar PDFs programaticamente em C#. Ela é enviada em duas edições — Generator (geração e edição de PDFs) e Viewer (recursos do Generator mais renderização/exibição). A biblioteca é distribuída no NuGet como Xfinium.Pdf.NetStandard e Xfinium.Pdf.NetCore. Seu modelo de programação gráfica baseado em coordenadas pode criar fricção para equipes que constroem aplicativos pesados em documentos, já que a maior parte do trabalho de layout envolve o posicionamento manual dos elementos usando coordenadas de pixels.
Este guia fornece um caminho de migração do XFINIUM.PDF para o IronPDF, com instruções passo a passo, comparações de código e exemplos práticos para desenvolvedores .NET avaliando essa transição.
Por que migrar do XFINIUM.PDF
XFINIUM.PDF é uma biblioteca de PDF de baixo nível que depende da programação gráfica baseada em coordenadas, o que significa que os desenvolvedores posicionam a maioria dos elementos na página diretamente. Motivos comuns que levam as equipes de desenvolvimento a considerarem a migração incluem:
Sem motor HTML nativo: XFINIUM.PDF não possui um conversor embutido de HTML para PDF. O fornecedor fornece um exemplo de walker XHTML que suporta um conjunto limitado de tags (p, font, b, i, u, ul, li) e não analisa CSS ou executa JavaScript, o que pode não ser suficiente para projetos que requerem capacidade completa de HTML para PDF.
API Baseada em Coordenadas: O posicionamento manual com coordenadas de pixels como DrawString("text", font, brush, 50, 100) é necessário para a maioria dos posicionamentos de elementos.
Gestão Manual de Fontes: Objetos de fonte devem ser criados e geridos explicitamente usando classes como PdfStandardFont e PdfBrush.
Sem suporte para estilos CSS: Não há compatibilidade com estilos modernos da web. Cores, fontes e layouts são gerenciados por meio de chamadas de método programáticas.
Sem renderização de JavaScript : somente conteúdo estático. XFINIUM.PDF não renderiza conteúdo web dinâmico ou executa JavaScript.
Layout de Texto Complexo: Medição manual de texto e cálculos de quebra geralmente são necessários para qualquer coisa além de texto simples de linha única.
Comunidade menor: Menos exemplos e tutoriais fornecidos pela comunidade em comparação com soluções mais populares, o que pode dificultar para novos usuários começarem.
O problema central: API gráfica versus HTML
O XFINIUM.PDF força você a pensar como um programador gráfico, não como um designer de documentos:
// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
// XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50);
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80);
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80);
// ... hundreds of lines for a simple document
' XFINIUM.PDF: Position every element manually
page.Graphics.DrawString("Invoice", titleFont, titleBrush, 50, 50)
page.Graphics.DrawString("Customer:", labelFont, brush, 50, 80)
page.Graphics.DrawString(customer.Name, valueFont, brush, 120, 80)
' ... hundreds of lines for a simple document
O IronPDF utiliza HTML/CSS familiar:
// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: Declarative HTML
var html = @"<h1>Invoice</h1><p><b>Customer:</b> " + customer.Name + "</p>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: Declarative HTML
Dim html As String = "<h1>Invoice</h1><p><b>Customer:</b> " & customer.Name & "</p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
IronPDF vs XFINIUM.PDF: Comparação de Recursos
Compreender as diferenças arquitetônicas ajuda os responsáveis pelas decisões técnicas a avaliar o investimento em migração:
| Recurso | XFINIUM.PDF | IronPDF |
|---|---|---|
| HTML para PDF | Sem mecanismo nativo; conversor de XHTML apenas para amostra (tags limitadas, sem CSS/JS) | Conversão completa de HTML para PDF com Chromium (CSS3 + JavaScript) |
| Comunidade e Apoio | Comunidade menor, menos recursos online disponíveis. | Comunidade ampla com extensa documentação e tutoriais. |
| Licença | Comercial com licenciamento baseado no desenvolvedor | Comercial |
| Suporte multiplataforma | Fortes capacidades multiplataforma | Também suporta operações multiplataforma |
| Suporte a CSS | Não | CSS3 completo |
| JavaScript | Não | ES2024 completo |
| Flexbox/Grade | Não | Sim |
| Layout automático | Não | Sim |
| Quebras de página automáticas | Não | Sim |
| Posicionamento manual | Obrigatório | Opcional (posicionamento CSS) |
| Curva de Aprendizagem | Alto (sistema de coordenadas) | Baixo (HTML/CSS) |
| Verbosidade do código | Muito alto | Baixo |
Guia rápido: Migração de XFINIUM.PDF para IronPDF
A migração pode começar imediatamente com esses passos fundamentais.
Passo 1: Substitua o pacote NuGet
Remover XFINIUM.PDF (os IDs reais do NuGet são específicos de plataforma):
# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf.NetStandard
# or: dotnet remove package Xfinium.Pdf.NetCore
# Remove XFINIUM.PDF
dotnet remove package Xfinium.Pdf.NetStandard
# or: dotnet remove package Xfinium.Pdf.NetCore
Instale o IronPDF:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Etapa 2: Atualizar Namespaces
Substituir namespaces XFINIUM.PDF pelo namespace IronPDF:
// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;
// After (IronPDF)
using IronPdf;
// Before (XFINIUM.PDF)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using Xfinium.Pdf.Content;
using Xfinium.Pdf.FlowDocument;
// After (IronPDF)
using IronPdf;
Imports IronPdf
Etapa 3: Inicializar a licença
Adicionar inicialização de licença na inicialização do aplicativo:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Exemplos de migração de código
Converter HTML para PDF
A operação mais fundamental revela a diferença de complexidade entre essas bibliotecas PDF do .NET .
Abordagem XFINIUM.PDF:
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
// XFINIUM.PDF has no native HTML-to-PDF engine. Flow content accepts
// styled text, headings, tables and images - not HTML. The vendor sample
// converter parses limited XHTML (p, font, b, i, u, ul, li) into
// PdfFormattedContent; full CSS/JS rendering is not supported.
using Xfinium.Pdf;
using Xfinium.Pdf.FlowDocument;
using Xfinium.Pdf.Graphics;
using System.IO;
class Program
{
static void Main()
{
PdfFlowDocument flowDocument = new PdfFlowDocument();
flowDocument.AddContent(new PdfFlowHeadingContent(
"Hello World",
new PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)));
flowDocument.AddContent(new PdfFlowTextContent(
"This is a PDF generated from text content (not HTML).",
new PdfStandardFont(PdfStandardFontFace.Helvetica, 12)));
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
flowDocument.Save(fs);
}
}
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
// XFINIUM.PDF has no native HTML-to-PDF engine. Flow content accepts
// styled text, headings, tables and images - not HTML. The vendor sample
// converter parses limited XHTML (p, font, b, i, u, ul, li) into
// PdfFormattedContent; full CSS/JS rendering is not supported.
using Xfinium.Pdf;
using Xfinium.Pdf.FlowDocument;
using Xfinium.Pdf.Graphics;
using System.IO;
class Program
{
static void Main()
{
PdfFlowDocument flowDocument = new PdfFlowDocument();
flowDocument.AddContent(new PdfFlowHeadingContent(
"Hello World",
new PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)));
flowDocument.AddContent(new PdfFlowTextContent(
"This is a PDF generated from text content (not HTML).",
new PdfStandardFont(PdfStandardFontFace.Helvetica, 12)));
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
flowDocument.Save(fs);
}
}
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.FlowDocument
Imports Xfinium.Pdf.Graphics
Imports System.IO
Module Program
Sub Main()
Dim flowDocument As New PdfFlowDocument()
flowDocument.AddContent(New PdfFlowHeadingContent(
"Hello World",
New PdfStandardFont(PdfStandardFontFace.HelveticaBold, 18)))
flowDocument.AddContent(New PdfFlowTextContent(
"This is a PDF generated from text content (not HTML).",
New PdfStandardFont(PdfStandardFontFace.Helvetica, 12)))
Using fs As New FileStream("output.pdf", FileMode.Create)
flowDocument.Save(fs)
End Using
End Sub
End Module
Abordagem IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
XFINIUM.PDF requer a criação de um PdfFlowDocument, instanciando objetos PdfStandardFont para cada estilo, construindo cada parte do conteúdo como um PdfFlowHeadingContent ou PdfFlowTextContent, adicionando-os ao documento de fluxo e salvando via um FileStream. A API do documento de fluxo aceita objetos de conteúdo tipado, não marcação HTML. O IronPDF simplifica isso para três linhas: criar um renderizador, renderizar HTML e salvar.
Para cenários avançados de conversão de HTML para PDF, consulte o guia de conversão de HTML para PDF .
Unir vários PDFs
A fusão de PDFs demonstra claramente as diferenças na complexidade da API.
Abordagem XFINIUM.PDF:
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument output = new PdfFixedDocument();
FileStream file1 = File.OpenRead("document1.pdf");
PdfFixedDocument pdf1 = new PdfFixedDocument(file1);
FileStream file2 = File.OpenRead("document2.pdf");
PdfFixedDocument pdf2 = new PdfFixedDocument(file2);
for (int i = 0; i < pdf1.Pages.Count; i++)
{
output.Pages.Add(pdf1.Pages[i]);
}
for (int i = 0; i < pdf2.Pages.Count; i++)
{
output.Pages.Add(pdf2.Pages[i]);
}
output.Save("merged.pdf");
file1.Close();
file2.Close();
}
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument output = new PdfFixedDocument();
FileStream file1 = File.OpenRead("document1.pdf");
PdfFixedDocument pdf1 = new PdfFixedDocument(file1);
FileStream file2 = File.OpenRead("document2.pdf");
PdfFixedDocument pdf2 = new PdfFixedDocument(file2);
for (int i = 0; i < pdf1.Pages.Count; i++)
{
output.Pages.Add(pdf1.Pages[i]);
}
for (int i = 0; i < pdf2.Pages.Count; i++)
{
output.Pages.Add(pdf2.Pages[i]);
}
output.Save("merged.pdf");
file1.Close();
file2.Close();
}
}
Imports Xfinium.Pdf
Imports System.IO
Module Program
Sub Main()
Dim output As New PdfFixedDocument()
Dim file1 As FileStream = File.OpenRead("document1.pdf")
Dim pdf1 As New PdfFixedDocument(file1)
Dim file2 As FileStream = File.OpenRead("document2.pdf")
Dim pdf2 As New PdfFixedDocument(file2)
For i As Integer = 0 To pdf1.Pages.Count - 1
output.Pages.Add(pdf1.Pages(i))
Next
For i As Integer = 0 To pdf2.Pages.Count - 1
output.Pages.Add(pdf2.Pages(i))
Next
output.Save("merged.pdf")
file1.Close()
file2.Close()
End Sub
End Module
Abordagem IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
Imports IronPdf
Imports System.Collections.Generic
Class Program
Shared Sub Main()
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End Class
O XFINIUM.PDF exige a criação de um documento de saída, a abertura de fluxos de arquivos, o carregamento de cada documento, a iteração manual pelas páginas e a adição delas uma a uma, o salvamento e, em seguida, o fechamento dos fluxos.IronPDF fornece um único método PdfDocument.Merge() que lida com toda a complexidade internamente.
Consulte a documentação sobre mesclagem de PDFs para obter opções adicionais de mesclagem.
Criando PDFs com texto e imagens
Documentos com conteúdo misto demonstram a diferença paradigmática fundamental.
Abordagem XFINIUM.PDF:
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
PdfBrush brush = new PdfBrush(new PdfRgbColor(0, 0, 0));
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);
using (FileStream imageStream = File.OpenRead("image.jpg"))
{
PdfJpegImage image = new PdfJpegImage(imageStream);
page.Graphics.DrawImage(image, 50, 100, 200, 150);
}
document.Save("output.pdf");
}
}
// NuGet: Install-Package Xfinium.Pdf.NetStandard (or .NetCore)
using Xfinium.Pdf;
using Xfinium.Pdf.Graphics;
using System.IO;
class Program
{
static void Main()
{
PdfFixedDocument document = new PdfFixedDocument();
PdfPage page = document.Pages.Add();
PdfStandardFont font = new PdfStandardFont(PdfStandardFontFace.Helvetica, 24);
PdfBrush brush = new PdfBrush(new PdfRgbColor(0, 0, 0));
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50);
using (FileStream imageStream = File.OpenRead("image.jpg"))
{
PdfJpegImage image = new PdfJpegImage(imageStream);
page.Graphics.DrawImage(image, 50, 100, 200, 150);
}
document.Save("output.pdf");
}
}
Imports Xfinium.Pdf
Imports Xfinium.Pdf.Graphics
Imports System.IO
Class Program
Shared Sub Main()
Dim document As New PdfFixedDocument()
Dim page As PdfPage = document.Pages.Add()
Dim font As New PdfStandardFont(PdfStandardFontFace.Helvetica, 24)
Dim brush As New PdfBrush(New PdfRgbColor(0, 0, 0))
page.Graphics.DrawString("Sample PDF Document", font, brush, 50, 50)
Using imageStream As FileStream = File.OpenRead("image.jpg")
Dim image As New PdfJpegImage(imageStream)
page.Graphics.DrawImage(image, 50, 100, 200, 150)
End Using
document.Save("output.pdf")
End Sub
End Class
Abordagem IronPDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
string html = $@"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</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();
string imageBase64 = Convert.ToBase64String(File.ReadAllBytes("image.jpg"));
string html = $@"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</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 imageBase64 As String = Convert.ToBase64String(File.ReadAllBytes("image.jpg"))
Dim html As String = $"
<html>
<body>
<h1>Sample PDF Document</h1>
<img src='data:image/jpeg;base64,{imageBase64}' width='200' height='150' />
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
XFINIUM.PDF requer a criação de um documento, adição de uma página, criação de objetos de fonte e pincel, desenho de texto em coordenadas específicas, abertura de um fluxo de imagem, criação de um PdfJpegImage, desenho da imagem em coordenadas com dimensões, fechamento do fluxo e salvamento. O IronPDF utiliza HTML padrão com imagens em base64 incorporadas — a mesma abordagem que os desenvolvedores web usam diariamente.
Referência de mapeamento da API XFINIUM.PDF para o IronPDF
Este mapeamento acelera a migração ao mostrar equivalentes diretos da API:
| XFINIUM.PDF | IronPDF |
|---|---|
PdfFixedDocument |
ChromePdfRenderer |
PdfPage |
Automático |
page.Graphics.DrawString() |
Elementos de texto HTML |
page.Graphics.DrawImage() |
<img> tag |
page.Graphics.DrawLine() |
CSS border ou <hr> |
page.Graphics.DrawRectangle() |
CSS border em |
PdfStandardFont |
CSS font-family |
PdfRgbColor |
CSS color |
PdfBrush |
Propriedades CSS |
PdfJpegImage |
tag com base64 |
document.Save(stream) |
pdf.SaveAs() ou pdf.BinaryData |
PdfFlowDocument |
RenderHtmlAsPdf() |
| Conversor XHTML de amostra do fornecedor | RenderHtmlAsPdf() |
Problemas e soluções comuns em migrações
Problema 1: Layout baseado em coordenadas
XFINIUM.PDF: Tudo requer coordenadas X,Y exatas com posicionamento manual.
Solução: Utilize um layout de fluxo HTML/CSS. Para posicionamento absoluto quando necessário, use CSS:
.positioned-element {
position: absolute;
top: 100px;
left: 50px;
}
Problema 2: Gerenciamento de Objetos de Fonte
XFINIUM.PDF: Criar objetos PdfStandardFont ou PdfUnicodeTrueTypeFont para cada fonte.
Solução: Use CSS font-family — as fontes são gerenciadas automaticamente:
<style>
body { font-family: Arial, sans-serif; }
h1 { font-family: 'Times New Roman', serif; font-size: 24px; }
</style>
<style>
body { font-family: Arial, sans-serif; }
h1 { font-family: 'Times New Roman', serif; font-size: 24px; }
</style>
Edição 3: Manipulação de Cores
XFINIUM.PDF: Criar objetos PdfRgbColor e PdfBrush para cores.
Solução: Utilize cores CSS padrão:
.header { color: navy; background-color: #f5f5f5; }
.warning { color: rgb(255, 0, 0); }
.info { color: rgba(0, 0, 255, 0.8); }
Edição 4: Quebras de página manuais
XFINIUM.PDF: Monitore a posição Y e crie novas páginas manualmente quando o conteúdo exceder os limites.
Solução: O IronPDF lida com quebras de página automáticas. Para controle explícito, use CSS:
.section { page-break-after: always; }
.keep-together { page-break-inside: avoid; }
Problema 5: Carregamento de imagens
XFINIUM.PDF: Abra fluxos de arquivo, crie objetos PdfJpegImage, desenhe em coordenadas, feche fluxos.
Solução: Use tags HTML com caminhos de arquivo ou dados base64:
<img src="image.jpg" width="200" height="150" />
<img src="data:image/jpeg;base64,..." />
<img src="image.jpg" width="200" height="150" />
<img src="data:image/jpeg;base64,..." />
Lista de verificação de migração XFINIUM.PDF
Tarefas pré-migração
Faça uma auditoria no seu código-fonte para identificar todos os usos de XFINIUM.PDF:
grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
grep -r "using Xfinium.Pdf" --include="*.cs" .
grep -r "Graphics.DrawString\|Graphics.DrawImage\|Graphics.DrawLine" --include="*.cs" .
Documente os layouts baseados em coordenadas e anote todos os valores de posicionamento X,Y. Identifique objetos de fonte e cor (PdfStandardFont, PdfRgbColor, PdfBrush). Mapeie fluxos de trabalho de PDF mesclados usando PdfFixedDocument.Pages.Add().
Tarefas de atualização de código
- Remova o pacote NuGet Xfinium.Pdf.
- Instale o pacote NuGet do IronPDF
- Atualize as importações de namespace de
Xfinium.PdfparaIronPdf - Converta chamadas de
DrawString()para elementos de texto HTML - Converta chamadas de
DrawImage()para tags HTML - Converta
DrawRectangle()eDrawLine()para bordas CSS - Substitua
PdfStandardFontpor CSSfont-family - Substitua
PdfRgbColorePdfBrushpor cores CSS - Substitua a mesclagem de loop de página por
PdfDocument.Merge() - Adicionar inicialização da licença do IronPDF na inicialização do sistema.
Testes pós-migração
Após a migração, verifique os seguintes aspectos:
- Compare a saída visual para garantir que a aparência corresponda às expectativas.
- Verificar a renderização do texto com a nova abordagem HTML/CSS
- Verificar o posicionamento da imagem usando CSS
- As quebras de página de teste ocorrem conforme o esperado.
- Verifique se as configurações de segurança do PDF estão aplicadas corretamente.
- Testar em todas as plataformas alvo
Principais benefícios da migração para o IronPDF
A migração do XFINIUM.PDF para o IronPDF oferece diversas vantagens importantes:
Criação de conteúdo baseado em HTML: os desenvolvedores web podem aproveitar suas habilidades existentes em HTML e CSS. Não é necessário aprender APIs de desenho baseadas em coordenadas nem gerenciar objetos de fonte e pincel.
Layout automático: a quebra de texto, a paginação e o layout de fluxo acontecem automaticamente. Não é necessário calcular manualmente as posições dos elementos ou as quebras de página.
Suporte a CSS moderno: CSS3 completo, incluindo layouts Flexbox e Grid. Os designs responsivos são convertidos diretamente para PDF.
Operações Simplificadas de PDF: Chamadas de método único para operações comuns como PdfDocument.Merge() substituem loops complexos de iteração de página.
Desenvolvimento Ativo: As atualizações regulares do IronPDF acompanham as versões atuais do .NET e lançamentos de linguagem C#.
Documentação extensa: Grande comunidade com documentação abrangente, tutoriais e recursos de suporte, em comparação com o ecossistema menor do XFINIUM.PDF.

