Como migrar do Pdfium para o IronPDF em C#
A migração do Pdfium .NET para o IronPDF transforma seu fluxo de trabalho de PDF em .NET , passando de uma biblioteca focada em renderização com dependências binárias nativas para uma solução completa de PDF que lida com criação, manipulação e renderização sem a complexidade específica de cada plataforma. Este guia fornece um caminho de migração completo, passo a passo, que elimina o gerenciamento de dependências nativas e adiciona recursos que o Pdfium não pode oferecer.
Por que migrar do Pdfium para o IronPDF?
Entendendo o Pdfium .NET
O Pdfium .NET é um wrapper .NET para a biblioteca PDFium do Google, conhecida por sua eficiência e velocidade na renderização de documentos PDF. Ela se consolidou como uma biblioteca importante para desenvolvedores que exploram as complexidades da renderização de PDFs em aplicações C#, proporcionando uma replicação de alta fidelidade do conteúdo de PDFs em ambientes .NET .
No entanto, apesar de sua capacidade de renderização, os recursos do Pdfium.NET para criar e manipular documentos PDF são limitados. Ele foi desenvolvido principalmente para aplicações que exigem a exibição precisa do conteúdo de PDFs, com menos ênfase na modificação ou criação de novos PDFs.
Limitações críticas do paládio
-
Foco somente na renderização: Não é possível criar PDFs a partir de HTML, imagens ou programaticamente. As funcionalidades do Pdfium se restringem à visualização e renderização de PDFs.
-
Sem manipulação de PDF: Não é possível mesclar, dividir ou modificar o conteúdo do PDF. A fusão de PDFs não é suportada nativamente; você precisaria usar outra biblioteca, como o iTextSharp ou o PdfSharp.
-
Dependências binárias nativas: Requer binários PDFium específicos da plataforma. Os desenvolvedores precisam gerenciar binários nativos do PDFium, um aspecto que adiciona complexidade durante a implantação e distribuição.
-
Complexidade de implantação: É necessário agrupar e gerenciar DLLs nativas por plataforma, com pastas x86, x64 e de tempo de execução.
-
Extração de Texto Limitada: Extração básica de texto sem formatação. A extração de texto requer trabalho adicional com o Pdfium .NET.
-
Sem conversão de HTML para PDF: Não é possível converter conteúdo da web para PDF. A conversão de HTML para PDF não é suportada nativamente no Pdfium .NET.
-
Sem cabeçalhos/rodapés: Não é possível adicionar números de página ou conteúdo repetido.
-
Sem marcas d'água: Não é possível carimbar documentos com sobreposições.
-
Sem suporte para formulários: Não é possível preencher ou ler formulários em PDF.
- Sem recursos de segurança: Não é possível criptografar ou proteger PDFs com senha.
Comparação entre Pdfium e IronPDF
| Aspecto | Pdfium.NET | IronPDF |
|---|---|---|
| Foco principal | Renderização/visualização | Solução completa em PDF |
| Fidelidade de renderização | Renderização de alta fidelidade | Alta qualidade, especialmente para HTML/CSS/JS. |
| Criação de PDF | ✗ | ✓ (HTML, URL, imagens) |
| Manipulação de PDF | ✗ | ✓ (mesclar, dividir, editar) |
| HTML para PDF | ✗ | ✓ (Motor Chromium) |
| Marcas d'água | ✗ | ✓ |
| Cabeçalhos/Rodapés | ✗ | ✓ |
| Preenchimento de formulários | ✗ | ✓ |
| Segurança | ✗ | ✓ |
| Dependências nativas | Obrigatório | Nenhum (totalmente gerenciado) |
| Multiplataforma | Configuração complexa | Automático |
| Facilidade de Implantação | Complicado por dependências nativas | Mais fácil; menos complicações de dependência |
Para equipes que planejam a adoção do .NET 10 e do C# 14 até 2025 e 2026, o IronPDF oferece uma base totalmente gerenciada que elimina o gerenciamento de binários nativos, ao mesmo tempo que adiciona recursos abrangentes de criação e manipulação de PDFs.
Antes de começar
Pré-requisitos
- Ambiente .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
- Acesso ao NuGet : Capacidade de instalar pacotes NuGet.
- Licença do IronPDF : Obtenha sua chave de licença em IronPDF
Alterações no pacote NuGet
# Remove Pdfium packages
dotnet remove package Pdfium.NET
dotnet remove package Pdfium.Net.SDK
dotnet remove package PdfiumViewer
# Install IronPDF
dotnet add package IronPdf
# Remove Pdfium packages
dotnet remove package Pdfium.NET
dotnet remove package Pdfium.Net.SDK
dotnet remove package PdfiumViewer
# Install IronPDF
dotnet add package IronPdf
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"
Identificar o uso de Pdfium
# Find Pdfium usage
grep -r "Pdfium\|PdfDocument\.Load\|\.Render\(" --include="*.cs" .
# Find native binary references
grep -r "pdfium\.dll\|pdfium\.so\|pdfium\.dylib" --include="*.csproj" --include="*.config" .
# Find platform-specific code
grep -r "#if.*64\|WIN32\|WIN64\|LINUX\|OSX" --include="*.cs" .
# Find Pdfium usage
grep -r "Pdfium\|PdfDocument\.Load\|\.Render\(" --include="*.cs" .
# Find native binary references
grep -r "pdfium\.dll\|pdfium\.so\|pdfium\.dylib" --include="*.csproj" --include="*.config" .
# Find platform-specific code
grep -r "#if.*64\|WIN32\|WIN64\|LINUX\|OSX" --include="*.cs" .
Referência completa da API
Alterações de namespace
// Pdfium.NET
using Pdfium;
using Pdfium.Net;
using PdfiumViewer;
// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
// Pdfium.NET
using Pdfium;
using Pdfium.Net;
using PdfiumViewer;
// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
Imports Pdfium
Imports Pdfium.Net
Imports PdfiumViewer
Imports IronPdf
Imports IronPdf.Rendering
Imports IronPdf.Editing
Mapeamentos de Classes Principais
| Pdfium.NET | IronPDF |
|---|---|
PdfDocument |
PdfDocument |
PdfPage |
PdfPage |
PdfPageCollection |
PdfPageCollection |
| (não disponível) | ChromePdfRenderer |
| (não disponível) | HtmlHeaderFooter |
Mapeamentos de carregamento de documentos
| Pdfium.NET | IronPDF |
|---|---|
PdfDocument.Load(path) |
PdfDocument.FromFile(path) |
PdfDocument.Load(stream) |
PdfDocument.FromStream(stream) |
PdfDocument.Load(bytes) |
PdfDocument.FromBinaryData(bytes) |
new PdfDocument(path) |
PdfDocument.FromFile(path) |
Mapeamentos de propriedades de documentos
| Pdfium.NET | IronPDF |
|---|---|
document.PageCount |
document.PageCount |
document.Pages |
document.Pages |
document.Pages[index] |
document.Pages[index] |
document.GetPageSize(index) |
document.Pages[index].Width/Height |
Mapeamentos de Extração de Texto
| Pdfium.NET | IronPDF |
|---|---|
document.GetPdfText(pageIndex) |
document.Pages[index].Text |
| (loop manual) | document.ExtractAllText() |
page.GetTextBounds() |
page.Text |
Salvando Mapeamentos de Documentos
| Pdfium.NET | IronPDF |
|---|---|
document.Save(path) |
document.SaveAs(path) |
document.Save(stream) |
document.Stream |
| (não disponível) | document.BinaryData |
Mapeamentos de renderização de página
| Pdfium.NET | IronPDF |
|---|---|
page.Render(width, height) |
pdf.RasterizeToImageFiles(path, dpi) |
page.Render(width, height, flags) |
parâmetro DPI |
document.Render(index, width, height) |
pdf.RasterizeToImageFiles() |
page.RenderToScale(scale) |
DPI: 72 * scale |
Novos recursos não disponíveis no Pdfium
| Recurso IronPDF | Descrição |
|---|---|
ChromePdfRenderer.RenderHtmlAsPdf() |
Criar a partir de HTML |
ChromePdfRenderer.RenderUrlAsPdf() |
Criar a partir de um URL |
ChromePdfRenderer.RenderHtmlFileAsPdf() |
Criar a partir de um arquivo HTML |
PdfDocument.Merge() |
Combinar PDFs |
pdf.CopyPages() |
Páginas extraídas |
pdf.RemovePages() |
Excluir páginas |
pdf.InsertPdf() |
Inserir PDF na posição |
pdf.ApplyWatermark() |
Adicionar marcas d'água |
pdf.AddHtmlHeaders() |
Adicionar cabeçalhos |
pdf.AddHtmlFooters() |
Adicionar rodapés |
pdf.SecuritySettings |
Proteção por senha |
pdf.SignWithDigitalSignature() |
Assinaturas digitais |
pdf.Form |
Preenchimento de formulário |
Exemplos de migração de código
Exemplo 1: Extração de texto de um PDF
Antes (Pdfium):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
using (var document = PdfDocument.Load(pdfPath))
{
StringBuilder text = new StringBuilder();
for (int i = 0; i < document.PageCount; i++)
{
// Note: PdfiumViewer has limited text extraction capabilities
// Text extraction requires additional work with Pdfium.NET
string pageText = document.GetPdfText(i);
text.AppendLine(pageText);
}
Console.WriteLine(text.ToString());
}
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
using (var document = PdfDocument.Load(pdfPath))
{
StringBuilder text = new StringBuilder();
for (int i = 0; i < document.PageCount; i++)
{
// Note: PdfiumViewer has limited text extraction capabilities
// Text extraction requires additional work with Pdfium.NET
string pageText = document.GetPdfText(i);
text.AppendLine(pageText);
}
Console.WriteLine(text.ToString());
}
}
}
Imports PdfiumViewer
Imports System
Imports System.IO
Imports System.Text
Module Program
Sub Main()
Dim pdfPath As String = "document.pdf"
Using document = PdfDocument.Load(pdfPath)
Dim text As New StringBuilder()
For i As Integer = 0 To document.PageCount - 1
' Note: PdfiumViewer has limited text extraction capabilities
' Text extraction requires additional work with Pdfium.NET
Dim pageText As String = document.GetPdfText(i)
text.AppendLine(pageText)
Next
Console.WriteLine(text.ToString())
End Using
End Sub
End Module
Após (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
var pdf = PdfDocument.FromFile(pdfPath);
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
var pdf = PdfDocument.FromFile(pdfPath);
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdfPath As String = "document.pdf"
Dim pdf = PdfDocument.FromFile(pdfPath)
Dim text As String = pdf.ExtractAllText()
Console.WriteLine(text)
End Sub
End Class
A diferença aqui é significativa. O Pdfium requer um loop manual em cada página com GetPdfText(pageIndex), construindo um StringBuilder e gerenciando a instrução using para descarte adequado. O código observa que "o PdfiumViewer tem capacidades limitadas de extração de texto" e que "a extração de texto requer trabalho adicional".
O IronPDF simplifica isso para três linhas: carregar com PdfDocument.FromFile(), extrair com ExtractAllText() e gerar a saída. O método ExtractAllText() processa todas as páginas automaticamente com recursos mais avançados de extração de texto. Se você precisar de extração por página, pode usar pdf.Pages[index].Text. Consulte a documentação de extração de texto para obter opções adicionais.
Exemplo 2: Fusão de PDFs
Antes (Pdfium):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;
// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
static void Main()
{
List<string> pdfFiles = new List<string>
{
"document1.pdf",
"document2.pdf",
"document3.pdf"
};
// PdfiumViewer is primarily for rendering/viewing
// PDF merging is not natively supported
// You would need to use another library like iTextSharp or PdfSharp
Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;
// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
static void Main()
{
List<string> pdfFiles = new List<string>
{
"document1.pdf",
"document2.pdf",
"document3.pdf"
};
// PdfiumViewer is primarily for rendering/viewing
// PDF merging is not natively supported
// You would need to use another library like iTextSharp or PdfSharp
Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
}
}
Imports PdfiumViewer
Imports System
Imports System.IO
Imports System.Collections.Generic
' Note: PdfiumViewer does not have native PDF merging functionality
' You would need to use additional libraries or implement custom logic
Class Program
Shared Sub Main()
Dim pdfFiles As New List(Of String) From {
"document1.pdf",
"document2.pdf",
"document3.pdf"
}
' PdfiumViewer is primarily for rendering/viewing
' PDF merging is not natively supported
' You would need to use another library like iTextSharp or PdfSharp
Console.WriteLine("PDF merging not natively supported in PdfiumViewer")
End Sub
End Class
Após (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> pdfFiles = new List<string>
{
"document1.pdf",
"document2.pdf",
"document3.pdf"
};
var pdf = PdfDocument.Merge(pdfFiles);
pdf.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()
{
List<string> pdfFiles = new List<string>
{
"document1.pdf",
"document2.pdf",
"document3.pdf"
};
var pdf = PdfDocument.Merge(pdfFiles);
pdf.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
Dim pdfFiles As New List(Of String) From {
"document1.pdf",
"document2.pdf",
"document3.pdf"
}
Dim pdf = PdfDocument.Merge(pdfFiles)
pdf.SaveAs("merged.pdf")
Console.WriteLine("PDFs merged successfully")
End Sub
End Module
Este exemplo destaca uma lacuna fundamental de funcionalidade. O Pdfium não consegue mesclar PDFs — o código afirma explicitamente que "A mesclagem de PDFs não é suportada nativamente no PdfiumViewer" e que "Você precisaria usar outra biblioteca como iTextSharp ou PdfSharp".
O IronPDF oferece mesclagem nativa com o método estático PdfDocument.Merge() que aceita diretamente uma lista de caminhos de arquivos. O resultado é um novo PdfDocument que você salva com SaveAs(). Saiba mais sobre como mesclar e dividir PDFs .
Exemplo 3: Conversão de HTML para PDF
Antes (Pdfium):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
static void Main()
{
// Pdfium.NET does not have native HTML to PDF conversion
// You would need to use a separate library to convert HTML to PDF
// then use Pdfium for manipulation
string htmlContent = "<h1>Hello World</h1>";
// This functionality is not directly available in Pdfium.NET
Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
static void Main()
{
// Pdfium.NET does not have native HTML to PDF conversion
// You would need to use a separate library to convert HTML to PDF
// then use Pdfium for manipulation
string htmlContent = "<h1>Hello World</h1>";
// This functionality is not directly available in Pdfium.NET
Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
}
}
Imports PdfiumViewer
Imports System.IO
Imports System.Drawing.Printing
' Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
' For HTML to PDF with Pdfium.NET, you would need additional libraries
' This example shows a limitation of Pdfium.NET
Class Program
Shared Sub Main()
' Pdfium.NET does not have native HTML to PDF conversion
' You would need to use a separate library to convert HTML to PDF
' then use Pdfium for manipulation
Dim htmlContent As String = "<h1>Hello World</h1>"
' This functionality is not directly available in Pdfium.NET
Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET")
End Sub
End Class
Após (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<h1>Hello World</h1>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<h1>Hello World</h1>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim htmlContent As String = "<h1>Hello World</h1>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
Este exemplo demonstra a diferença de capacidade mais significativa. O Pdfium afirma explicitamente que "a conversão de HTML para PDF não é suportada nativamente no Pdfium .NET" e que "você precisaria usar uma biblioteca separada para converter HTML em PDF".
O IronPDF fornece conversão nativa de HTML para PDF através do ChromePdfRenderer, que usa um mecanismo Chromium internamente para renderização precisa de HTML, CSS e JavaScript. O método RenderHtmlAsPdf() converte strings HTML diretamente em documentos PDF. O IronPDF também pode renderizar URLs com RenderUrlAsPdf() e arquivos HTML com RenderHtmlFileAsPdf(). Consulte a documentação de conversão de HTML para PDF para obter exemplos completos.
Remoção de dependências nativas
Um dos benefícios mais significativos da migração do Pdfium para o IronPDF é a eliminação do gerenciamento de binários nativos.
Antes (Pdfium) - Implantação Complexa
MyApp/
├── bin/
│ ├── MyApp.dll
│ ├── Pdfium .NET.dll
│ ├── x86/
│ │ └── pdfium.dll
│ └── x64/
│ └── pdfium.dll
├── tempos de execução/
│ ├── win-x86/nativo/
│ │ └── pdfium.dll
│ └── win-x64/nativo/
│ └── pdfium.dll
Após (IronPDF) - Implantação limpa
MyApp/
├── bin/
│ ├── MyApp.dll
│ └── IronPDF.dll # Tudo incluído
Remover referências binárias nativas
# Delete native PDFium binaries
rm -rf x86/ x64/ runtimes/
# Remove from .csproj
# Delete any <Content Include="pdfium.dll" /> entries
# Delete any <None Include="x86/pdfium.dll" /> entries
# Delete native PDFium binaries
rm -rf x86/ x64/ runtimes/
# Remove from .csproj
# Delete any <Content Include="pdfium.dll" /> entries
# Delete any <None Include="x86/pdfium.dll" /> entries
Notas críticas sobre migração
Conversão de escala para DPI
O paládio utiliza fatores de escala; O IronPDF utiliza DPI:
// Formula: IronPDF DPI = 72 × Pdfium scale
// Pdfium scale 2.0 → IronPDF DPI 144
pdf.RasterizeToImageFiles("*.png", DPI: 144);
// Formula: IronPDF DPI = 72 × Pdfium scale
// Pdfium scale 2.0 → IronPDF DPI 144
pdf.RasterizeToImageFiles("*.png", DPI: 144);
' Formula: IronPDF DPI = 72 × Pdfium scale
' Pdfium scale 2.0 → IronPDF DPI 144
pdf.RasterizeToImageFiles("*.png", DPI:=144)
Alteração do método de carregamento do documento
// Pdfium
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
// Pdfium
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
Salvar alteração de método
// Pdfium
document.Save(path)
// IronPDF
pdf.SaveAs(path)
// Pdfium
document.Save(path)
// IronPDF
pdf.SaveAs(path)
Simplificação do padrão de descarte
// Pdfium: Obrigatório explicit disposal
using (var document = PdfDocument.Load(path))
using (var page = document.Pages[0])
using (var bitmap = page.Render(1024, 768))
{
bitmap.Save("output.png");
}
// IronPDF: Simplified
var pdf = PdfDocument.FromFile(path);
pdf.RasterizeToImageFiles("output.png");
// Pdfium: Obrigatório explicit disposal
using (var document = PdfDocument.Load(path))
using (var page = document.Pages[0])
using (var bitmap = page.Render(1024, 768))
{
bitmap.Save("output.png");
}
// IronPDF: Simplified
var pdf = PdfDocument.FromFile(path);
pdf.RasterizeToImageFiles("output.png");
Imports PdfiumViewer
' Pdfium: Obrigatório explicit disposal
Using document = PdfDocument.Load(path)
Using page = document.Pages(0)
Using bitmap = page.Render(1024, 768)
bitmap.Save("output.png")
End Using
End Using
End Using
' IronPDF: Simplified
Dim pdf = PdfDocument.FromFile(path)
pdf.RasterizeToImageFiles("output.png")
Remoção de código específico da plataforma
// Pdfium: Obrigatório platform detection
#if WIN64
// Load x64 pdfium.dll
#else
// Load x86 pdfium.dll
#endif
// IronPDF: Remove all platform-specific code
// Just use the API directly
// Pdfium: Obrigatório platform detection
#if WIN64
// Load x64 pdfium.dll
#else
// Load x86 pdfium.dll
#endif
// IronPDF: Remove all platform-specific code
// Just use the API directly
#If WIN64 Then
' Load x64 pdfium.dll
#Else
' Load x86 pdfium.dll
#End If
' IronPDF: Remove all platform-specific code
' Just use the API directly
Resumo da comparação de recursos
| Recurso | Pdfium.NET | IronPDF |
|---|---|---|
| Carregar PDF | ✓ | ✓ |
| Renderizar para imagem | ✓ | ✓ |
| Texto extraído | ✓ (básico) | ✓ (avançado) |
| Informações da página | ✓ | ✓ |
| Criar a partir de HTML | ✗ | ✓ |
| Criar a partir de um URL | ✗ | ✓ |
| Mesclar PDFs | ✗ | ✓ |
| Dividir PDFs | ✗ | ✓ |
| Adicionar marcas d'água | ✗ | ✓ |
| Cabeçalhos/Rodapés | ✗ | ✓ |
| Preenchimento de formulários | ✗ | ✓ |
| Assinaturas digitais | ✗ | ✓ |
| Proteção por senha | ✗ | ✓ |
| Dependências nativas | Obrigatório | Nenhum |
| Multiplataforma | Complexo | Automático |
| Gerenciamento de memória | Descarte manual | Simplificado |
Lista de verificação para migração
Pré-migração
- Identificar todas as utilizações de Pdfium no código-fonte.
- Documentar as dimensões/escalas de renderização atuais utilizadas.
- Listar os locais dos binários nativos no projeto
- Verifique se há código de carregamento específico da plataforma
- Identificar as necessidades de criação de PDFs (atualmente usando ferramentas separadas?)
- Analisar os padrões de descarte para conversão.
- Obtenha a chave de licença do IronPDF
Alterações no pacote
- Remover os pacotes NuGet
Pdfium.NET,Pdfium.Net.SDKePdfiumViewer. - Exclua os binários nativos do pdfium.dll das pastas x86/, x64/ e runtimes/.
- Remover compilação condicional específica da plataforma
- Atualize o arquivo .csproj para remover as referências a binários nativos.
- Instale o pacote NuGet
IronPdf:dotnet add package IronPdf
Alterações no código
- Adicionar configuração de chave de licença na inicialização
- Substitua
PdfDocument.Load()porPdfDocument.FromFile() - Substitua
document.Save()porpdf.SaveAs() - Substitua os loops
document.GetPdfText(i)porpdf.ExtractAllText() - Converter fatores de escala em valores DPI (DPI = 72 × escala)
- Simplificar os padrões de descarte (remover instruções using aninhadas)
- Remover código específico da plataforma
Pós-migração
- Testar a qualidade da renderização
- Comparar resultados de extração de texto
- Testar a implementação multiplataforma
- Adicionar novas funcionalidades (HTML para PDF, mesclagem, marcas d'água, segurança)
- Atualizar documentação

