Cómo migrar de PDFView4NET a IronPDF en C#
La migración de PDFView4NETaIronPDFtransforma su flujo de trabajo PDF de un componente de visualización centrado en la interfaz de usuario a una completa biblioteca de generación y manipulación de PDF. Esta guía proporciona una ruta de migración completa, paso a paso, que permite el procesamiento del lado del servidor, la compatibilidad con aplicaciones web y funciones completas de gestión del ciclo de vida de PDF que PDFView4NETno puede proporcionar.
Por qué migrar de PDFView4NETa IronPDF
Entender PDFView4NET
PDFView4NET es una opción popular para los desarrolladores que se centran principalmente en las funciones de visualización de PDF en C#. PDFView4NETofrece sólidos controles de visualización de PDF adaptados a aplicaciones Windows Forms (WinForms) y Windows Presentation Foundation (WPF). El énfasis de la biblioteca en proporcionar una experiencia de visualización de PDF sin problemas la convierte en una opción a la que recurrir para el desarrollo de aplicaciones de escritorio.
A pesar de sus puntos fuertes, PDFView4NETtiene limitaciones que pueden incitar a los desarrolladores a explorar bibliotecas más completas como IronPDF, que ofrece una solución todo en uno para PDF que abarca capacidades de creación, visualización y manipulación sin limitarse a componentes específicos de la interfaz de usuario.
La limitación de solo visualización
PDFView4NET es principalmente un componente de visualización de interfaz de usuario para aplicaciones WinFormsy WPF. Se centra en la visualización de PDF más que en su creación o manipulación. Razones clave para migrar:
-
Limitaciones de solo visualización: PDFView4NETestá diseñado para visualizar, no para crear PDF.
-
Dependencia del marco de interfaz de usuario: requiere contexto WinFormso WPF. El requisito de entornos WinFormso WPFpuede restringir el uso en otros contextos, como aplicaciones de consola o servicios web, que no son compatibles con PDFView4NET.
-
No HTML a PDF: No se puede convertir HTML o URL a PDF. La biblioteca se centra estrictamente en la visualización, sin funciones integradas para crear o manipular archivos PDF.
-
Manipulación limitada: Edición básica en comparación con el conjunto completo de funciones de IronPDF.
-
Sin soporte del lado del servidor: no se puede ejecutar en servicios web o funciones de Azure.
- Tecnología heredada: desarrollo menos activo y actualizaciones de funciones modernas.
Comparación entre PDFView4NETe IronPDF
| Característica | PDFView4NET | IronPDF |
|---|---|---|
| Enfoque principal | Visualización en PDF | Solución PDF completa (crear, ver, editar) |
| Framework de interfaz de usuario requerido | WinForms, WPF | Ninguno |
| Creación de PDF | No | Sí |
| Manipulación de PDF | Limitado (anotaciones) | Sí |
| Lado Servidor | No compatible | Soporte completo |
| Aplicaciones web | No | Sí |
| Aplicaciones de consola | Limitado | Soporte completo |
| Azure/Docker | No | Sí |
| HTML a PDF | No | Sí |
| Contexto multiplataforma | No | Sí |
| Facilidad de integración | Medio | Alta |
IronPDF se distingue por su versatilidad y su amplio conjunto de funciones, lo que lo hace especialmente atractivo para los desarrolladores que necesitan un enfoque holístico del manejo de PDF en C#. La biblioteca admite la creación, visualización y edición de PDF, entre otras funciones, y aborda casos de uso que van mucho más allá de las capacidades de visualización de PDFView4NET.
Para los equipos que planifican la adopción de .NET 10 y C# 14 hasta 2025 y 2026,IronPDFproporciona independencia de contexto: puede utilizarse en diferentes contextos, incluidas aplicaciones web, servicios y aplicaciones de consola. Esta flexibilidad es crucial para proyectos que requieren compatibilidad entre plataformas y diversos escenarios de despliegue.
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
<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />
<PackageReference Include="IronPdf" Version="2024.*" />
<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />
<PackageReference Include="IronPdf" Version="2024.*" />
O a través de CLI:
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
Configuración de licencias
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Referencia completa de la API
Cambios en el espacio de nombres
// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;
// After: IronPDF
using IronPdf;
// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;
// After: IronPDF
using IronPdf;
Imports IronPdf
Mapeos de API principales
| PDFView4NET | IronPDF |
|---|---|
PDFFile.Open(path) |
PdfDocument.FromFile(path) |
PDFFile.Open(stream) |
PdfDocument.FromStream(stream) |
pdfFile.GetPage(index) |
pdf.Pages[index] |
pdfFile.PageCount |
pdf.PageCount |
PDFPrintDocument |
pdf.Print() |
pdfFile.Close() |
pdf.Dispose() |
HtmlToPdfConverter |
ChromePdfRenderer |
| N/A | PdfDocument.Merge() |
| N/A | pdf.ApplyWatermark() |
| N/A | pdf.SecuritySettings |
Ejemplos de migración de código
Ejemplo 1: Conversión de URL a PDF
Antes (PDFView4NET):
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdfConverter converter = new HtmlToPdfConverter();
converter.NavigateUri = new Uri("https://example.com");
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");
}
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;
class Program
{
static void Main()
{
HtmlToPdfConverter converter = new HtmlToPdfConverter();
converter.NavigateUri = new Uri("https://example.com");
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");
}
}
Imports O2S.Components.PDFView4NET
Imports O2S.Components.PDFView4NET.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdfConverter()
converter.NavigateUri = New Uri("https://example.com")
converter.ConvertHtmlToPdf()
converter.SavePdf("output.pdf")
End Sub
End Class
Después (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("output.pdf")
End Sub
End Class
PDFView4NET usa HtmlToPdfConverter con la propiedad NavigateUri establecida en un objeto Uri, seguido de una llamada a ConvertHtmlToPdf() y luego a SavePdf().IronPDFsimplifica esto a un solo ChromePdfRenderer con RenderUrlAsPdf() que acepta una URL de cadena directamente y devuelve un PdfDocument que guarda con SaveAs(). El enfoque deIronPDFofrece una sintaxis más limpia y una mejor integración con las aplicaciones .NET modernas. Consulte la documentación HTML a PDF para ver ejemplos completos.
Ejemplo 2: Conversión de cadenas HTML a PDF
Antes (PDFView4NET):
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlToPdfConverter converter = new HtmlToPdfConverter();
converter.HtmlContent = htmlContent;
converter.ConvertHtmlToPdf();
converter.SavePdf("document.pdf");
}
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlToPdfConverter converter = new HtmlToPdfConverter();
converter.HtmlContent = htmlContent;
converter.ConvertHtmlToPdf();
converter.SavePdf("document.pdf");
}
}
Imports O2S.Components.PDFView4NET
Imports O2S.Components.PDFView4NET.HtmlToPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim converter As New HtmlToPdfConverter()
converter.HtmlContent = htmlContent
converter.ConvertHtmlToPdf()
converter.SavePdf("document.pdf")
End Sub
End Class
Después (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("document.pdf");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim htmlContent As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("document.pdf")
End Sub
End Class
PDFView4NET usa la propiedad HtmlContent para establecer la cadena HTML, luego requiere llamar a ConvertHtmlToPdf() seguido de SavePdf().IronPDFproporciona una API más fluida donde RenderHtmlAsPdf() acepta la cadena HTML directamente y devuelve un PdfDocument. Los nombres de los métodos son más intuitivos: RenderHtmlAsPdf vs ConvertHtmlToPdf. Más información en nuestros tutoriales.
Ejemplo 3: Extracción de texto de un PDF
Antes (PDFView4NET):
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using System;
using System.IO;
class Program
{
static void Main()
{
using (FileStream fs = File.OpenRead("document.pdf"))
{
PDFDocument document = new PDFDocument(fs);
string text = "";
for (int i = 0; i < document.Pages.Count; i++)
{
text += document.Pages[i].ExtractText();
}
Console.WriteLine(text);
}
}
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using System;
using System.IO;
class Program
{
static void Main()
{
using (FileStream fs = File.OpenRead("document.pdf"))
{
PDFDocument document = new PDFDocument(fs);
string text = "";
for (int i = 0; i < document.Pages.Count; i++)
{
text += document.Pages[i].ExtractText();
}
Console.WriteLine(text);
}
}
}
Imports O2S.Components.PDFView4NET
Imports System
Imports System.IO
Class Program
Shared Sub Main()
Using fs As FileStream = File.OpenRead("document.pdf")
Dim document As New PDFDocument(fs)
Dim text As String = ""
For i As Integer = 0 To document.Pages.Count - 1
text &= document.Pages(i).ExtractText()
Next
Console.WriteLine(text)
End Using
End Sub
End Class
Después (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim text As String = pdf.ExtractAllText()
Console.WriteLine(text)
End Sub
End Class
Este ejemplo destaca una diferencia significativa entre las API. PDFView4NETrequiere crear manualmente un FileStream, instanciar PDFDocument con la secuencia, luego recorrer document.Pages.Count y concatenar Pages[i].ExtractText() para cada página.
IronPDF simplifica esto drásticamente: PdfDocument.FromFile() carga el PDF directamente desde una ruta y ExtractAllText() extrae texto de todas las páginas en una sola llamada de método. Sin gestión manual de flujos, sin bucles, sin concatenación de cadenas: sólo dos líneas de código.
Notas de migración críticas
Cambio de clase de conversor
PDFView4NET utiliza HtmlToPdfConverter;IronPDFutiliza ChromePdfRenderer:
// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PDFView4NET
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer = New ChromePdfRenderer()
API basada en propiedades frente a API basada en métodos
PDFView4NET establece las propiedades antes de la conversión:
// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");
// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");
// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
' PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent
converter.NavigateUri = New Uri(url)
converter.ConvertHtmlToPdf()
converter.SavePdf("output.pdf")
' IronPDF: Method parameters with fluent API
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("output.pdf")
Cambio de carga del documento
// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
PDFDocument document = new PDFDocument(fs);
}
// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
PDFDocument document = new PDFDocument(fs);
}
// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
Imports System.IO
Imports PDFView4NET
Imports IronPDF
' PDFView4NET: Requires FileStream
Using fs As FileStream = File.OpenRead("document.pdf")
Dim document As New PDFDocument(fs)
End Using
' IronPDF: Direct file path
Dim pdf = PdfDocument.FromFile("document.pdf")
Cambio de acceso a la página
// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
document.Pages[i].ExtractText();
}
// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
document.Pages[i].ExtractText();
}
// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
' PDFView4NET: document.Pages.Count and Pages(i)
For i As Integer = 0 To document.Pages.Count - 1
document.Pages(i).ExtractText()
Next
' IronPDF: pdf.PageCount and Pages(i) or ExtractAllText()
Dim text As String = pdf.ExtractAllText()
' Or per-page: pdf.ExtractTextFromPage(0)
Cambio de método de guardado
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
Nuevas capacidades tras la migración
Tras migrar a IronPDF, obtendrá funciones que PDFView4NETno puede ofrecer:
Fusión de PDF
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("complete_book.pdf")
Marcas de agua con HTML
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
<div style='
font-size: 72pt;
color: rgba(255, 0, 0, 0.2);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>");
pdf.SaveAs("watermarked.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
<div style='
font-size: 72pt;
color: rgba(255, 0, 0, 0.2);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>");
pdf.SaveAs("watermarked.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.ApplyWatermark("
<div style='
font-size: 72pt;
color: rgba(255, 0, 0, 0.2);
transform: rotate(-45deg);
'>
CONFIDENTIAL
</div>")
pdf.SaveAs("watermarked.pdf")
Protección con contraseña
var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
Dim pdf = PdfDocument.FromFile("document.pdf")
pdf.SecuritySettings.OwnerPassword = "owner123"
pdf.SecuritySettings.UserPassword = "user456"
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SaveAs("protected.pdf")
Relleno de formularios
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
Dim pdf = PdfDocument.FromFile("form.pdf")
pdf.Form.GetFieldByName("FirstName").Value = "John"
pdf.Form.GetFieldByName("LastName").Value = "Doe"
pdf.SaveAs("filled_form.pdf")
Procesamiento del lado del servidor
PDFView4NET no puede ejecutarse en entornos de servidor.IronPDFdestaca aquí:
// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
<HttpGet>
Public Function GeneratePdf() As IActionResult
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(GetReportHtml())
Return File(pdf.BinaryData, "application/pdf", "report.pdf")
End Function
Resumen comparativo de características
| Característica | PDFView4NET | IronPDF |
|---|---|---|
| Ver PDF | Sí (interfaz de usuario) | No (usar visor) |
| Cargar PDF | Sí | Sí |
| Guardar PDF | Limitado | Sí |
| HTML a PDF | No | Sí |
| URL a PDF | No | Sí |
| Fusionar PDF | No | Sí |
| Dividir PDF | Limitado | Sí |
| Marcas de agua | No | Sí |
| Encabezados/pies de página | No | Sí |
| Protección por contraseña | No | Sí |
| Firmas digitales | No | Sí |
| Extracción de Texto | Limitado | Sí |
| Rellenar formularios | Limitado | Sí |
| WinForms | Sí | Sí |
| WPF | Sí | Sí |
| Consola | Limitado | Sí |
| ASP.NET | No | Sí |
| Azure | No | Sí |
| Docker | No | Sí |
Lista de comprobación de la migración
Pre-Migración
- Identificar los requisitos de visualización (determinar si las capacidades deIronPDFpueden reemplazar la visualización de PDF basada en UI)
- Flujos de trabajo de impresión de documentos
- Enumerar las necesidades de manipulación de PDF
- Planifique el reemplazo del visor si es necesario (IronPDF se centra en la generación/manipulación)
- Obtenga la clave de licencia deIronPDFen IronPDF
Cambios en el paquete
- Eliminar el paquete NuGet
O2S.Components.PDFView4NET - Instalar
IronPdfel paquete NuGet :dotnet add package IronPdf
Cambios de código
- Actualizar las importaciones del espacio de nombres (
using O2S.Components.PDFView4NET;→using IronPdf;) - Reemplace
HtmlToPdfConverterconChromePdfRenderer - Reemplace
converter.HtmlContent+ConvertHtmlToPdf()conrenderer.RenderHtmlAsPdf(html) - Reemplace
converter.NavigateUri+ConvertHtmlToPdf()conrenderer.RenderUrlAsPdf(url) - Reemplace
converter.SavePdf()conpdf.SaveAs() - Reemplace
PDFDocument(stream)conPdfDocument.FromFile(path) - Reemplace la extracción manual del bucle de página con
pdf.ExtractAllText() - Agregar inicialización de licencia al iniciar la aplicación
Posmigración
- Prueba de carga y guardado de PDF
- Verificar la funcionalidad de extracción de texto
- Prueba de conversión de HTML a PDF
- Verificar que la implementación del servidor funcione (nueva capacidad)
- Pruebe la multiplataforma si es necesario (nueva capacidad)
- Eliminar el código PDF específico de la interfaz de usuario si es solo del servidor

