Como migrar do PDFView4NET para o IronPDF em C#
A migração do PDFView4NET para o IronPDF transforma seu fluxo de trabalho de PDF, passando de um componente de visualização focado na interface do usuário para uma biblioteca abrangente de geração e manipulação de PDFs. Este guia fornece um caminho de migração completo, passo a passo, que permite o processamento no servidor, suporte a aplicativos da web e recursos completos de gerenciamento do ciclo de vida de PDFs, algo que o PDFView4NET não consegue oferecer.
Por que migrar do PDFView4NET para o IronPDF?
Entendendo o PDFView4NET
O PDFView4NET é uma escolha popular para desenvolvedores que se concentram principalmente em recursos de visualização de PDF em C#. O PDFView4NET oferece controles robustos de visualização de PDF, personalizados para aplicativos Windows Forms (WinForms) e Windows Presentation Foundation (WPF). A ênfase da biblioteca em proporcionar uma experiência de visualização de PDFs perfeita a torna uma opção ideal para o desenvolvimento de aplicativos para desktop.
Apesar de seus pontos fortes, o PDFView4NET apresenta limitações que podem levar os desenvolvedores a explorar bibliotecas mais abrangentes, como o IronPDF, que oferece uma solução completa para PDFs, englobando recursos de criação, visualização e manipulação, sem se restringir a componentes específicos da interface do usuário.
A limitação de somente visualização
O PDFView4NET é principalmente um componente de visualização de interface do usuário para aplicativos WinForms e WPF. O foco é exibir PDFs, em vez de criá-los ou manipulá-los. Principais razões para migrar:
-
Limitações de visualização: O PDFView4NET foi projetado para visualização, não para criação de PDFs.
-
Dependência de framework de interface do usuário: Requer contexto WinForms ou WPF. A necessidade de ambientes WinForms ou WPF pode restringir o uso em outros contextos, como aplicativos de console ou serviços da Web, que não são suportados pelo PDFView4NET.
-
Sem conversão de HTML para PDF: Não é possível converter HTML ou URLs para PDF. A biblioteca se concentra estritamente na visualização, sem recursos integrados para criar ou manipular arquivos PDF.
-
Manipulação limitada: Edição básica em comparação com o conjunto completo de recursos do IronPDF.
-
Sem suporte no lado do servidor: Não pode ser executado em serviços web ou Funções do Azure.
- Tecnologia legada: Desenvolvimento menos ativo e atualizações de recursos modernos.
Comparação entre PDFView4NET e IronPDF
| Recurso | PDFView4NET | IronPDF |
|---|---|---|
| Foco principal | Visualização de PDF | Solução completa para PDF (Criar, Visualizar, Editar) |
| Frameworks de interface do usuário necessários | WinForms, WPF | Nenhum |
| Criação de PDF | Não | Sim |
| Manipulação de PDF | Limitado (Anotações) | Sim |
| Lado do servidor | Não suportado | Suporte completo |
| Aplicações Web | Não | Sim |
| Aplicativos de console | Limitado | Suporte completo |
| Azure/Docker | Não | Sim |
| HTML para PDF | Não | Sim |
| Contexto multiplataforma | Não | Sim |
| Facilidade de integração | Médio | Alto |
O IronPDF se destaca por sua versatilidade e conjunto abrangente de recursos, tornando-o particularmente atraente para desenvolvedores que precisam de uma abordagem holística para o manuseio de PDFs em C#. A biblioteca oferece suporte à criação, visualização, edição e outras funcionalidades de PDF, atendendo a casos de uso que vão muito além dos recursos de visualização do PDFView4NET.
Para equipes que planejam a adoção do .NET 10 e do C# 14 até 2025 e 2026, o IronPDF oferece independência de contexto — ele pode ser usado em diferentes contextos, incluindo aplicativos da web, serviços e aplicativos de console. Essa flexibilidade é crucial para projetos que exigem suporte multiplataforma e diversos cenários de implantação.
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
<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />
<PackageReference Include="IronPdf" Version="2024.*" />
<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />
<PackageReference Include="IronPdf" Version="2024.*" />
Ou via linha de comando:
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
Configuração de licença
// 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"
Referência completa da API
Alterações de namespace
// 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
Mapeamentos da API principal
| 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 / D | PdfDocument.Merge() |
| N / D | pdf.ApplyWatermark() |
| N / D | pdf.SecuritySettings |
Exemplos de migração de código
Exemplo 1: Conversão de URL para 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
Apó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 com a propriedade NavigateUri definida para um objeto Uri, seguido pela chamada de ConvertHtmlToPdf() e depois SavePdf(). O IronPDF simplifica isso para um único ChromePdfRenderer com RenderUrlAsPdf() que aceita uma URL de string diretamente, retornando um PdfDocument que você salva com SaveAs(). A abordagem do IronPDF oferece uma sintaxe mais limpa e melhor integração com aplicativos .NET modernos. Consulte a documentação de conversão de HTML para PDF para obter exemplos completos.
Exemplo 2: Conversão de string HTML para 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
Apó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
O PDFView4NET usa a propriedade HtmlContent para definir a string HTML e, em seguida, requer a chamada de ConvertHtmlToPdf() seguida por SavePdf(). IronPDF fornece uma API mais fluente onde RenderHtmlAsPdf() aceita a string HTML diretamente e retorna um PdfDocument. Os nomes dos métodos são mais intuitivos: RenderHtmlAsPdf vs ConvertHtmlToPdf. Saiba mais em nossos tutoriais .
Exemplo 3: Extração de texto de um 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
Apó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 exemplo destaca uma diferença significativa na API. O PDFView4NET requer a criação manual de um FileStream, a instanciação de PDFDocument com o fluxo, e então a iteração de document.Pages.Count e a concatenação de Pages[i].ExtractText() para cada página.
O IronPDF simplifica isso drasticamente: PdfDocument.FromFile() carrega o PDF diretamente de um caminho e ExtractAllText() extrai o texto de todas as páginas em uma única chamada de método. Sem gerenciamento manual de fluxos, sem loops, sem concatenação de strings — apenas duas linhas de código.
Notas críticas sobre migração
Alteração da classe do conversor
PDFView4NET usa HtmlToPdfConverter; IronPDF usa 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 baseada em propriedades versus API baseada em métodos
O PDFView4NET define as propriedades antes da conversão:
// 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")
Alteração de carregamento de 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")
Alteração de acesso à 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)
Salvar alteração de método
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
Novas funcionalidades após a migração
Após migrar para o IronPDF, você obtém recursos que o PDFView4NET não pode fornecer:
Fusão de PDFs
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 d'água com 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")
Proteção por senha
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")
Preenchimento de formulários
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")
Processamento do lado do servidor
O PDFView4NET não pode ser executado em ambientes de servidor. O IronPDF se destaca nesse aspecto:
// 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
Resumo da comparação de recursos
| Recurso | PDFView4NET | IronPDF |
|---|---|---|
| Ver PDFs | Sim (interface do usuário) | Não (use o visualizador) |
| Carregar PDFs | Sim | Sim |
| Salvar PDFs | Limitado | Sim |
| HTML para PDF | Não | Sim |
| URL para PDF | Não | Sim |
| Mesclar PDFs | Não | Sim |
| Dividir PDFs | Limitado | Sim |
| Marcas d'água | Não | Sim |
| Cabeçalhos/Rodapés | Não | Sim |
| Proteção por senha | Não | Sim |
| Assinaturas digitais | Não | Sim |
| Extração de texto | Limitado | Sim |
| Preencha os formulários. | Limitado | Sim |
| WinForms | Sim | Sim |
| WPF | Sim | Sim |
| Console | Limitado | Sim |
| ASP.NET | Não | Sim |
| Azure | Não | Sim |
| Docker | Não | Sim |
Lista de verificação para migração
Pré-migração
- Identificar os requisitos de visualização (determinar se os recursos do IronPDF podem substituir a visualização de PDFs baseada em interface gráfica)
- Fluxos de trabalho de impressão de documentos
- Listar as necessidades de manipulação de PDF
- Substituição do visualizador de plantas, se necessário (o IronPDF foca na geração/manipulação de plantas)
- Obtenha a chave de licença do IronPDF em IronPDF
Alterações no pacote
- Remover o pacote NuGet
O2S.Components.PDFView4NET - Instale o pacote NuGet
IronPdf:dotnet add package IronPdf
Alterações no código
- Atualizar importações de namespace (
using O2S.Components.PDFView4NET;→using IronPdf;) - Substitua
HtmlToPdfConverterporChromePdfRenderer - Substitua
converter.HtmlContent+ConvertHtmlToPdf()porrenderer.RenderHtmlAsPdf(html) - Substitua
converter.NavigateUri+ConvertHtmlToPdf()porrenderer.RenderUrlAsPdf(url) - Substitua
converter.SavePdf()porpdf.SaveAs() - Substitua
PDFDocument(stream)porPdfDocument.FromFile(path) - Substituir extração manual de loop de página por
pdf.ExtractAllText() - Adicionar inicialização de licença na inicialização do aplicativo
Pós-migração
- Testar o carregamento e o salvamento de PDFs
- Verificar a funcionalidade de extração de texto
- Teste de conversão de HTML para PDF
- Verificar se a implantação do servidor funciona (nova funcionalidade)
- Testar a compatibilidade entre plataformas, se necessário (nova funcionalidade)
- Remover o código PDF específico da interface do usuário se for exclusivo do servidor.

