Cómo migrar de Pdfium a IronPDF en C#
La migración de Pdfium.NET aIronPDFtraslada su flujo de trabajo PDF .NET de una biblioteca centrada en la renderización con dependencias binarias nativas a una solución PDF completa que gestiona la creación, manipulación y renderización sin complejidad específica de la plataforma. Esta guía proporciona una ruta de migración completa, paso a paso, que elimina la gestión de dependencias nativas a la vez que añade capacidades que Pdfium no puede proporcionar.
Por qué migrar de Pdfium a IronPDF
Entender Pdfium.NET
Pdfium.NET es un envoltorio .NET para la biblioteca PDFium de Google, famosa por su eficacia y velocidad en la representación de documentos PDF. Se ha convertido en una importante biblioteca para los desarrolladores que se adentran en los entresijos de la representación de PDF en aplicaciones C#, ya que proporciona una reproducción de alta fidelidad del contenido PDF en entornos .NET.
Sin embargo, a pesar de su destreza en el renderizado, las capacidades de Pdfium.NET para crear y manipular documentos PDF son limitadas. Se ha creado principalmente para aplicaciones que requieren mostrar contenido PDF con precisión, con menos énfasis en la modificación o creación de nuevos PDF.
Limitaciones críticas de Pdfium
-
Enfoque de solo representación: no se pueden crear archivos PDF a partir de HTML, imágenes o mediante programación. Las capacidades de Pdfium se limitan a la visualización y representación de archivos PDF.
-
Sin manipulación de PDF: no se puede fusionar, dividir ni modificar el contenido del PDF. La fusión de PDF no se admite de forma nativa, por lo que será necesario utilizar otra biblioteca como iTextSharp o PdfSharp.
-
Dependencias binarias nativas: requiere binarios PDFium específicos de la plataforma. Los desarrolladores necesitan gestionar binarios PDFium nativos, un aspecto que añade complejidad durante el despliegue y la distribución.
-
Complejidad de implementación: se deben agrupar y administrar archivos DLL nativos por plataforma con carpetas x86, x64 y de tiempo de ejecución.
-
Extracción de texto limitada: extracción de texto básica sin formato. La extracción de texto requiere trabajo adicional con Pdfium.NET.
-
No HTML a PDF: No se puede convertir contenido web a PDF. La conversión de HTML a PDF no se admite de forma nativa en Pdfium.NET.
-
Sin encabezados/pies de página: no se pueden agregar números de página ni repetir contenido.
-
Sin marcas de agua: no se pueden estampar documentos con superposiciones.
-
No hay soporte para formularios: no se pueden completar ni leer formularios PDF.
- Sin funciones de seguridad: no se pueden cifrar ni proteger con contraseña los archivos PDF.
Comparación entre Pdfium e IronPDF
| Aspecto | Pdfium.NET | IronPDF |
|---|---|---|
| Enfoque principal | Renderización/visualización | Solución PDF completa |
| Fidelidad de renderización | Renderizado de alta fidelidad | Alto, especialmente para HTML/CSS/JS |
| Creación de PDF | ✗ | ✓(HTML, URL, imágenes) |
| Manipulación de PDF | ✗ | ✓(fusionar, dividir, editar) |
| HTML a PDF | ✗ | ✓(motor Chromium) |
| Marcas de agua | ✗ | ✓ |
| Cabeceras/Pies de página | ✗ | ✓ |
| Relleno de formularios | ✗ | ✓ |
| Seguridad | ✗ | ✓ |
| Dependencias nativas | Requerido | Ninguno (totalmente gestionado) |
| Traducción multiplataforma | Configuración compleja | Automático |
| Facilidad de implementación | Complicado por las dependencias nativas | Más fácil; menos complicaciones de dependencia |
Para los equipos que planifican la adopción de .NET 10 y C# 14 hasta 2025 y 2026,IronPDFproporciona una base totalmente gestionada que elimina la gestión binaria nativa a la vez que añade funciones completas de creación y manipulación de PDF.
Antes de empezar
Prerrequisitos
- Entorno .NET : .NET Framework 4.6.2+ o .NET Core 3.1+ / .NET 5/6/7/8/9+
- Acceso a NuGet : Capacidad para instalar paquetes NuGet
- Licencia deIronPDF: Obtenga su clave de licencia en IronPDF
Cambios en el paquete 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
Configuración de licencias
// 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 el 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" .
Referencia completa de la API
Cambios en el espacio de nombres
// 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
Asignaciones de clases principales
| Pdfium.NET | IronPDF |
|---|---|
PdfDocument |
PdfDocument |
PdfPage |
PdfPage |
PdfPageCollection |
PdfPageCollection |
| (no disponible) | ChromePdfRenderer |
| (no disponible) | HtmlHeaderFooter |
Mapas de carga 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) |
Mapeo de propiedades 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 |
Mapas de extracción de texto
| Pdfium.NET | IronPDF |
|---|---|
document.GetPdfText(pageIndex) |
document.Pages[index].Text |
| (bucle manual)_ | document.ExtractAllText() |
page.GetTextBounds() |
page.Text |
Guardar asignaciones de documentos
| Pdfium.NET | IronPDF |
|---|---|
document.Save(path) |
document.SaveAs(path) |
document.Save(stream) |
document.Stream |
| (no disponible) | document.BinaryData |
Mapas de renderizado de páginas
| 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 |
Nuevas funciones no disponibles en Pdfium
| Características de IronPDF | Descripción |
|---|---|
ChromePdfRenderer.RenderHtmlAsPdf() |
Crear a partir de HTML |
ChromePdfRenderer.RenderUrlAsPdf() |
Crear a partir de URL |
ChromePdfRenderer.RenderHtmlFileAsPdf() |
Crear a partir de un archivo HTML |
PdfDocument.Merge() |
Combinar PDF |
pdf.CopyPages() |
Extraer páginas |
pdf.RemovePages() |
Eliminar páginas |
pdf.InsertPdf() |
Insertar PDF en posición |
pdf.ApplyWatermark() |
Añadir marcas de agua |
pdf.AddHtmlHeaders() |
Añadir encabezados |
pdf.AddHtmlFooters() |
Añadir pies de página |
pdf.SecuritySettings |
Protección mediante contraseña |
pdf.SignWithDigitalSignature() |
Firmas digitales |
pdf.Form |
Relleno de formularios |
Ejemplos de migración de código
Ejemplo 1: Extracción de texto de un 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
Despué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
La diferencia aquí es significativa. Pdfium requiere un bucle manual a través de cada página con GetPdfText(pageIndex), construyendo un StringBuilder y administrando la declaración using para su eliminación adecuada. El código señala que "PdfiumViewer tiene capacidades limitadas de extracción de texto" y "la extracción de texto requiere trabajo adicional."
IronPDF simplifica esto a tres líneas: cargar con PdfDocument.FromFile(), extraer con ExtractAllText() y generar salida. El método ExtractAllText() maneja todas las páginas automáticamente con capacidades de extracción de texto más avanzadas. Si necesita extracción por página, puede utilizar pdf.Pages[index].Text. Consulte la documentación de extracción de texto para obtener opciones adicionales.
Ejemplo 2: Fusión de PDF
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
Despué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 ejemplo pone de manifiesto una carencia fundamental. Pdfium no puede combinar PDF: el código indica explícitamente que "PdfiumViewer no admite de forma nativa la combinación de PDF" y que "tendría que utilizar otra biblioteca como iTextSharp o PdfSharp"
IronPDF proporciona una fusión nativa con el método estático PdfDocument.Merge() que acepta una lista de rutas de archivos directamente. El resultado es un nuevo PdfDocument que guardas con SaveAs(). Más información sobre mezclar y dividir archivos PDF.
Ejemplo 3: Conversión de HTML a 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
Despué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 ejemplo muestra la diferencia de capacidad más significativa. Pdfium indica explícitamente "La conversión de HTML a PDF no se admite de forma nativa en Pdfium.NET" y "Tendrías que utilizar una biblioteca independiente para convertir HTML a PDF."
IronPDF proporciona conversión nativa de HTML a PDF a través de ChromePdfRenderer, que utiliza un motor Chromium internamente para una representación precisa de HTML, CSS y JavaScript. El método RenderHtmlAsPdf() convierte cadenas HTML directamente en documentos PDF.IronPDFtambién puede renderizar URL con RenderUrlAsPdf() y archivos HTML con RenderHtmlFileAsPdf(). Consulte la documentación HTML a PDF para ver ejemplos completos.
Eliminación de dependencias nativas
Una de las ventajas más significativas de migrar de Pdfium aIronPDFes la eliminación de la gestión nativa de binarios.
Antes (Pdfium) - Despliegue complejo
MyApp/
├── papelera/
│├── MyApp.dll
│├── Pdfium.NET.dll
│ ├── x86/
││└── pdfium.dll
│ └── x64/
│ └── pdfium.dll
├── tiempos de ejecución/
│├── win-x86/native/
││└── pdfium.dll
│ └── win-x64/native/
│ └── pdfium.dll
Después (IronPDF) - Implementación limpia
MyApp/
├── papelera/
│├── MyApp.dll
│ └── IronPDF.dll # Todo incluido
Eliminar referencias binarias 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 de migración críticas
Conversión de escala a PPP
Pdfium utiliza factores de escala;IronPDFutiliza DPI:
// Formula:IronPDFDPI = 72 × Pdfium scale
// Pdfium scale 2.0 →IronPDFDPI 144
pdf.RasterizeToImageFiles("*.png", DPI: 144);
// Formula:IronPDFDPI = 72 × Pdfium scale
// Pdfium scale 2.0 →IronPDFDPI 144
pdf.RasterizeToImageFiles("*.png", DPI: 144);
' Formula: IronPDFDPI = 72 × Pdfium scale
' Pdfium scale 2.0 → IronPDFDPI 144
pdf.RasterizeToImageFiles("*.png", DPI:=144)
Cambio de método de carga de documentos
// Pdfium
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
// Pdfium
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
Cambio de método de guardado
// Pdfium
document.Save(path)
// IronPDF
pdf.SaveAs(path)
// Pdfium
document.Save(path)
// IronPDF
pdf.SaveAs(path)
Simplificación del patrón de eliminación
// Pdfium: Requeridoexplicit 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: Requeridoexplicit 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: Requerido 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")
Eliminación de código específico de la plataforma
// Pdfium: Requeridoplatform 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: Requeridoplatform detection
#if WIN64
// Load x64 pdfium.dll
#else
// Load x86 pdfium.dll
#endif
// IronPDF: Remove all platform-specific code
// Just use the API directly
Resumen comparativo de características
| Característica | Pdfium.NET | IronPDF |
|---|---|---|
| Cargar PDF | ✓ | ✓ |
| Renderizado a imagen | ✓ | ✓ |
| Extraer texto | ✓(básico) | ✓(avanzado) |
| Información de la página | ✓ | ✓ |
| Crear a partir de HTML | ✗ | ✓ |
| Crear a partir de URL | ✗ | ✓ |
| Fusionar PDF | ✗ | ✓ |
| Dividir PDF | ✗ | ✓ |
| Añadir marcas de agua | ✗ | ✓ |
| Encabezados/pies de página | ✗ | ✓ |
| Relleno de formularios | ✗ | ✓ |
| Firmas digitales | ✗ | ✓ |
| Protección por contraseña | ✗ | ✓ |
| Dependencias nativas | Requerido | Ninguno |
| Multiplataforma | Complejo | Automático |
| Gestión de memoria | Eliminación manual | Simplificado |
Lista de comprobación de la migración
Pre-Migración
- Identificar todo el uso de Pdfium en el código base
- Documentar las dimensiones/escalas de representación actuales utilizadas
- Enumere las ubicaciones de los binarios nativos en el proyecto
- Verificar el código de carga específico de la plataforma
- Identificar las necesidades de creación de PDF (¿actualmente utiliza herramientas independientes?)
- Revisar los patrones de eliminación para la conversión
- Obtener la clave de licencia de IronPDF
Cambios en el paquete
- Eliminar los paquetes NuGet
Pdfium.NET,Pdfium.Net.SDK,PdfiumViewer - Eliminar los binarios nativos pdfium.dll de las carpetas x86/, x64/, runtimes/
- Eliminar la compilación condicional específica de la plataforma
- Actualizar .csproj para eliminar referencias binarias nativas
- Instalar
IronPdfel paquete NuGet :dotnet add package IronPdf
Cambios de código
- Agregar configuración de clave de licencia al inicio
- Reemplace
PdfDocument.Load()conPdfDocument.FromFile() - Reemplace
document.Save()conpdf.SaveAs() - Reemplace los bucles
document.GetPdfText(i)conpdf.ExtractAllText() - Convertir factores de escala a valores DPI (DPI = 72 × escala)
- Simplificar los patrones de eliminación (eliminar las declaraciones using anidadas)
- Eliminar código específico de la plataforma
Posmigración
- Pruebe la calidad de salida de la representación
- Comparar los resultados de la extracción de texto
- Pruebe la implementación multiplataforma
- Añadir nuevas capacidades (HTML a PDF, fusión, marcas de agua, seguridad)
- Actualización de la documentación

