Como migrar do ExpertPDF para o IronPDF em C#
ExpertPdf é um conversor comercial de HTML para PDF for .NET que tem servido aos desenvolvedores há muitos anos. No entanto, o ExpertPdf enfrenta desafios significativos no cenário de desenvolvimento atual, que evolui rapidamente: documentação congelada desde 2018, dependência de uma versão legada do Chrome que não possui recursos modernos do CSS3, preços premium que variam de US$ 550 a US$ 1.200 por tecnologia desatualizada e um conjunto de produtos fragmentado que exige licenças separadas para fusão, segurança e divisão. Este guia completo fornece um caminho de migração passo a passo do ExpertPdf para o IronPDF— uma biblioteca PDF .NET moderna com a mais recente renderização do Chromium, atualizações mensais e uma arquitetura de pacote completa.
Por que migrar do ExpertPDF para o IronPDF?
O ExpertPdf apresenta diversos desafios que levam as equipes de desenvolvimento a avaliar alternativas modernas. Compreender essas questões é essencial para planejar sua estratégia de migração.
Os problemas do ExpertPdf
-
Documentação congelada desde 2018: A documentação do ExpertPdf não é atualizada há mais de 6 anos. Encontrar informações atualizadas, exemplos e boas práticas está se tornando cada vez mais difícil à medida que o ecossistema .NET evolui.
-
Versão desatualizada do Chrome: o ExpertPdf depende de uma versão antiga do Chrome para renderização. Os recursos modernos do CSS3 (Flexbox, Grid, variáveis CSS) podem não ser renderizados corretamente e as correções de segurança não são aplicadas.
-
Preços Premium para Tecnologia Legada: Com licenças que variam de US$ 550 a US$ 1.200, a ExpertPdf cobra preços premium enquanto oferece tecnologia de renderização desatualizada.
-
Conjunto de produtos fragmentado: a ExpertPdf vende pacotes separados para diferentes funções — Conversor de HTML para PDF, Fusão de PDF, Segurança de PDF, Divisor de PDF e PDF para Imagem — cada um exigindo licenciamento separado.
- Suporte limitado ao .NET moderno: Embora o ExpertPdf possua pacotes .NET Core , eles estão desatualizados em relação às versões e práticas modernas do .NET .
Comparação de arquitetura
| Aspecto | ExpertPdf | IronPDF |
|---|---|---|
| Documentação | Congelado desde 2018 | Atualizado continuamente |
| Motor de renderização | Chrome legado | Última versão do Chromium |
| Suporte a CSS | CSS3 limitado | CSS3 completo (Flexbox, Grid) |
| Preço | $ 550 - $ 1.200 | Preços competitivos |
| Frequência de atualização | Pouco frequente | Lançamentos mensais |
| Modelo do produto | Fragmentado (5+ DLLs) | Biblioteca completa |
| .NET moderno | Limitado | .NET 6/7/8/9+ nativo |
| Suporte assíncrono | Limitado | assíncrono/await completo |
Principais benefícios da migração
- Renderização moderna: o mais recente mecanismo Chromium para resultados com perfeição de pixels.
- Pacote Tudo-em-Um: geração, mesclagem, segurança e extração de PDFs em um único NuGet.
- Desenvolvimento ativo: atualizações mensais com novos recursos e correções de segurança.
- Melhor documentação: tutoriais e exemplos abrangentes.
- Verdadeira compatibilidade multiplataforma: suporte para Windows, Linux, macOS e Docker.
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 Audit ExpertPdf
Execute estes comandos no diretório da sua solução para identificar todas as referências ao ExpertPdf:
# Find all ExpertPdf references
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
# Find all ExpertPdf references
grep -r "ExpertPdf\|PdfConverter\|PDFMerge\|PdfSecurityManager" --include="*.cs" .
# Check NuGet packages
dotnet list package | grep -i "ExpertPdf"
Pacotes ExpertPdf comuns a serem procurados:
ExpertPdf.HtmlToPdf- Conversão de HTML para PDFExpertPdf.PDFMerge- Fusão de PDFExpertPdf.PDFSecurity- Criptografia e senhasExpertPdf.PDFSplit- Divisão de PDFExpertPdf.PdfToImage- Conversão de PDF para imagem
Entendendo a mudança no padrão central
ExpertPdf usa PdfConverter com métodos de retorno direto de matriz de bytes. O IronPDF usa objetos ChromePdfRenderer que retornam PdfDocument e fornecem capacidades adicionais de manipulação antes de salvar.
Processo de migração passo a passo
Passo 1: Atualizar pacotes NuGet
Remova todos os pacotes ExpertPDF e instale o IronPDF:
# Remove all ExpertPdf packages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage
# Install IronPDF (includes all features)
dotnet add package IronPdf
# Remove all ExpertPdf packages
dotnet remove package ExpertPdf.HtmlToPdf
dotnet remove package ExpertPdf.PDFMerge
dotnet remove package ExpertPdf.PDFSecurity
dotnet remove package ExpertPdf.PDFSplit
dotnet remove package ExpertPdf.PdfToImage
# Install IronPDF (includes all features)
dotnet add package IronPdf
Etapa 2: Atualizar referências de namespace
Substitua os namespaces do ExpertPDF pelos do IronPDF:
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
// Remove these
using ExpertPdf.HtmlToPdf;
// Add this
using IronPdf;
Imports IronPdf
Etapa 3: Configurar a licença
O ExpertPdf utiliza licenciamento por conversor. O IronPDF utiliza uma única licença global:
// 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 ExpertPdf | Equivalente ao IronPDF |
|---|---|
PdfConverter |
ChromePdfRenderer |
PdfDocumentOptions |
ChromePdfRenderOptions |
PdfHeaderOptions |
TextHeaderFooter ou HtmlHeaderFooter |
PdfFooterOptions |
TextHeaderFooter ou HtmlHeaderFooter |
PDFMerge |
PdfDocument.Merge() |
Mapeamento de Métodos
| Método ExpertPdf | Método IronPDF |
|---|---|
pdfConverter.GetPdfBytesFromHtmlString(html) |
renderer.RenderHtmlAsPdf(html).BinaryData |
pdfConverter.GetPdfBytesFromUrl(url) |
renderer.RenderUrlAsPdf(url).BinaryData |
pdfConverter.GetPdfBytesFromHtmlFile(path) |
renderer.RenderHtmlFileAsPdf(path).BinaryData |
pdfConverter.SavePdfFromUrlToFile(url, path) |
renderer.RenderUrlAsPdf(url).SaveAs(path) |
Mapeamento de opções
| Opção ExpertPdf | Opções de renderização do IronPDF |
|---|---|
PdfDocumentOptions.PdfPageSize = PdfPageSize.A4 |
PaperSize = PdfPaperSize.A4 |
PdfDocumentOptions.PdfPageOrientation = Portrait |
PaperOrientation = PdfPaperOrientation.Portrait |
PdfDocumentOptions.MarginTop |
MarginTop |
PdfHeaderOptions.HeaderText |
TextHeader.CenterText |
PdfFooterOptions.FooterText |
TextFooter.RightText |
Conversão de tokens de numeração de páginas
ExpertPDF e IronPDF usam sintaxes diferentes para marcadores de posição de números de página:
| ExpertPdf | IronPDF |
|---|---|
&p; |
{page} |
&P; |
{total-pages} |
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 do padrão de matriz de bytes do ExpertPdf para a abordagem de objeto de documento do IronPDF.
Implementação do ExpertPdf:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Convert HTML string to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Convert HTML string to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
Console.WriteLine("PDF created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Convert HTML string to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlString("<h1>Hello World</h1><p>This is a PDF document.</p>")
' Save to file
System.IO.File.WriteAllBytes("output.pdf", pdfBytes)
Console.WriteLine("PDF created successfully!")
End Sub
End Module
Implementação do IronPDF :
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>");
// Save to file
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF from HTML string
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF document.</p>")
' Save to file
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Class
A abordagem do IronPDF retorna um objeto PdfDocument, permitindo manipulação adicional (fusão, marca d'água, segurança) antes de salvar. Para mais opções, consulte a documentação de conversão de HTML para PDF .
URL para PDF com configurações de página
Implementação do ExpertPdf:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
// Convert URL to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
// Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
// Convert URL to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromUrl("https://www.example.com");
// Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes);
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Module Program
Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Set page size and orientation
pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4
pdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait
' Convert URL to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromUrl("https://www.example.com")
' Save to file
System.IO.File.WriteAllBytes("webpage.pdf", pdfBytes)
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()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save to file
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
// Save to file
pdf.SaveAs("webpage.pdf");
Console.WriteLine("PDF from URL created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Set page size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
' Convert URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
' Save to file
pdf.SaveAs("webpage.pdf")
Console.WriteLine("PDF from URL created successfully!")
End Sub
End Class
O recurso RenderingOptions do IronPDF fornece acesso direto às propriedades para configuração da página. Para mais opções, consulte o link para a documentação em PDF .
Cabeçalhos e rodapés com números de página
Este exemplo demonstra a diferença crucial na configuração de cabeçalho/rodapé: o ExpertPdf usa classes separadas PdfHeaderOptions e PdfFooterOptions com marcadores &P;, enquanto o IronPDF usa TextHeaderFooter com marcadores {total-pages}.
Implementação do ExpertPdf:
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = true;
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
// Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = true;
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
// Convert HTML file to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
// Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
// NuGet: Install-Package ExpertPdf.HtmlToPdf
using ExpertPdf.HtmlToPdf;
using System;
class Program
{
static void Main()
{
// Create the PDF converter
PdfConverter pdfConverter = new PdfConverter();
// Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = true;
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header";
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center;
// Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = true;
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;";
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right;
// Convert HTML file to PDF
byte[] pdfBytes = pdfConverter.GetPdfBytesFromHtmlFile("input.html");
// Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes);
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
Imports ExpertPdf.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
' Create the PDF converter
Dim pdfConverter As New PdfConverter()
' Enable header
pdfConverter.PdfHeaderOptions.ShowHeader = True
pdfConverter.PdfHeaderOptions.HeaderText = "Document Header"
pdfConverter.PdfHeaderOptions.HeaderTextAlignment = HorizontalTextAlign.Center
' Enable footer with page numbers
pdfConverter.PdfFooterOptions.ShowFooter = True
pdfConverter.PdfFooterOptions.FooterText = "Page &p; of &P;"
pdfConverter.PdfFooterOptions.FooterTextAlignment = HorizontalTextAlign.Right
' Convert HTML file to PDF
Dim pdfBytes As Byte() = pdfConverter.GetPdfBytesFromHtmlFile("input.html")
' Save to file
System.IO.File.WriteAllBytes("output-with-header-footer.pdf", pdfBytes)
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
Implementação do IronPDF :
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Configure header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Document Header",
DrawDividerLine = true
};
// Configure footer with page numbers
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true
};
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
// Save to file
pdf.SaveAs("output-with-header-footer.pdf");
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
// Create a PDF renderer
var renderer = new ChromePdfRenderer();
// Configure header
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Document Header",
DrawDividerLine = true
};
// Configure footer with page numbers
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true
};
// Convert HTML file to PDF
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
// Save to file
pdf.SaveAs("output-with-header-footer.pdf");
Console.WriteLine("PDF with headers and footers created successfully!");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
' Create a PDF renderer
Dim renderer = New ChromePdfRenderer()
' Configure header
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "Document Header",
.DrawDividerLine = True
}
' Configure footer with page numbers
renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True
}
' Convert HTML file to PDF
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
' Save to file
pdf.SaveAs("output-with-header-footer.pdf")
Console.WriteLine("PDF with headers and footers created successfully!")
End Sub
End Class
O TextHeaderFooter do IronPDF fornece propriedades LeftText, CenterText e RightText com linhas divisórias opcionais. Para cabeçalhos baseados em HTML, use HtmlHeaderFooter. Para mais opções, consulte a documentação sobre cabeçalhos e rodapés .
Notas críticas sobre migração
Localização da chave de licença
O ExpertPdf utiliza licenciamento por conversor. O IronPDF utiliza uma única licença global definida uma vez na inicialização:
// ExpertPdf - per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
// IronPDF - global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
// ExpertPdf - per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE";
// IronPDF - global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE";
' ExpertPdf - per converter
pdfConverter.LicenseKey = "EXPERTPDF-LICENSE"
' IronPDF - global, set once
IronPdf.License.LicenseKey = "IRONPDF-LICENSE"
Conversão de tokens de numeração de páginas
Substitua os marcadores ExpertPDF pelos marcadores IronPDF :
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
// ExpertPdf
"Page &p; of &P;"
// IronPDF
"Page {page} of {total-pages}"
Pacotes fragmentados consolidados
Os pacotes separados do ExpertPdf (PDFMerge, PDFSecurity, PDFSplit, PdfToImage) estão todos incluídos no pacote único do IronPDF:
// ExpertPdf - requires separate PDFMerge package
var merger = new PdfMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");
// IronPDF - included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// ExpertPdf - requires separate PDFMerge package
var merger = new PdfMerge();
merger.AppendPDFFile("file1.pdf");
merger.AppendPDFFile("file2.pdf");
merger.SaveMergedPDFToFile("merged.pdf");
// IronPDF - included in main package
var pdf1 = PdfDocument.FromFile("file1.pdf");
var pdf2 = PdfDocument.FromFile("file2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
' ExpertPdf - requires separate PDFMerge package
Dim merger As New PdfMerge()
merger.AppendPDFFile("file1.pdf")
merger.AppendPDFFile("file2.pdf")
merger.SaveMergedPDFToFile("merged.pdf")
' IronPDF - included in main package
Dim pdf1 = PdfDocument.FromFile("file1.pdf")
Dim pdf2 = PdfDocument.FromFile("file2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Para mais opções de mesclagem, consulte a documentação de mesclagem de PDFs .
Tamanhos de página personalizados
O ExpertPdf utiliza pontos. O IronPDF usa milímetros. Converter: points / 72 * 25.4 = mm
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 cabeçalhos/rodapés e números de página
- Testar as configurações de segurança/criptografia
- Validar operações de mesclagem
- Verifique os tamanhos de página personalizados
- Análise comparativa de desempenho
- Testes multiplataforma
- Remover arquivos de licença do ExpertPdf
- Atualizar documentação
Preparando sua infraestrutura de PDF para o futuro
Com o .NET 10 no horizonte e o C# 14 introduzindo novos recursos de linguagem, escolher uma biblioteca PDF com desenvolvimento ativo e renderização moderna garante compatibilidade a longo prazo. As atualizações mensais do IronPDF e o mais recente mecanismo Chromium fornecem a base para a geração de PDFs que continuarão funcionando corretamente com layouts CSS3 modernos (Flexbox, Grid) à medida que os projetos se estendem até 2025 e 2026 — ao contrário da versão legada do ExpertPDF para Chrome, que está congelada no tempo.
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 ExpertPDF para o IronPDF elimina os desafios da documentação congelada, da renderização legada do Chrome, do licenciamento fragmentado do produto e do suporte limitado ao .NET moderno. A transição para uma biblioteca com manutenção ativa e com o mecanismo Chromium mais recente garante que a geração de seus PDFs acompanhe a evolução dos padrões da web e das estruturas .NET .

