Como migrar do PdfiumViewer para o IronPDF em C#
A migração do Visualizador de PDF para o IronPDF transforma seu fluxo de trabalho de PDF em .NET , de uma biblioteca somente para visualização em Windows Forms com dependências binárias nativas, para uma solução completa de PDF que lida com criação, manipulação, extração de texto e renderização em todos os tipos de aplicativos .NET . Este guia fornece um caminho de migração completo, passo a passo, que elimina as restrições de plataforma e adiciona recursos que o Visualizador de PDF não oferece.
Por que migrar do Visualizador de PDF para o IronPDF?
Entendendo o PdfiumViewer
O Visualizador de PDF é um wrapper .NET para o PDFium, o mecanismo de renderização de PDF do Google usado no navegador Chrome. Oferece uma solução simples, porém poderosa, para integrar a visualização de PDFs diretamente em aplicativos Windows Forms, proporcionando recursos de renderização de PDF de alto desempenho e alta fidelidade.
No entanto, é crucial lembrar que o Visualizador de PDF é apenas um visualizador. Não oferece suporte à criação, edição ou manipulação de PDFs, o que pode ser limitante para aplicativos que exigem mais do que apenas a visualização. Além disso, seu estado de manutenção incerto cria riscos para aplicações de produção — existe certa incerteza em relação ao seu desenvolvimento e manutenção contínuos, o que pode ser uma preocupação para projetos de longo prazo.
Limitações críticas do PdfiumViewer
-
Funcionalidade somente para visualização: Não é possível criar PDFs a partir de HTML, imagens ou programaticamente. As funcionalidades do Visualizador de PDF se limitam à visualização de PDFs — diferentemente de bibliotecas como o IronPDF, ele não oferece suporte à criação, edição, mesclagem ou outras funções de manipulação de PDFs.
-
Específico para Windows Forms: A biblioteca é focada em aplicativos Windows Forms, não oferecendo suporte para outras estruturas de interface do usuário.
-
Sem manipulação de PDF: Não é possível mesclar, dividir ou modificar o conteúdo do PDF.
-
Dependências binárias nativas: Requer binários PDFium específicos da plataforma (arquivos pdfium.dll para x86 e x64).
-
Manutenção incerta: atualizações limitadas e suporte a longo prazo incerto.
-
Sem extração de texto: O Visualizador de PDF não possui extração de texto integrada; você precisaria usar OCR ou outra biblioteca. Ele só consegue renderizar páginas como imagens.
-
Sem conversão de HTML para PDF: O Visualizador de PDF é principalmente um visualizador/renderizador de PDF, não um gerador. Não é possível converter HTML diretamente para PDF. Você precisaria usar outra biblioteca, como wkhtmltopdf ou similar.
-
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 recursos de segurança: Não é possível criptografar ou proteger PDFs com senha.
Comparação entre Visualizador de PDF e IronPDF
| Aspecto | Visualizador de PDF | IronPDF |
|---|---|---|
| Foco principal | Visualizador de PDF WinForms | Solução completa em PDF |
| Licença | Apache 2.0 | Comercial |
| Criação de PDF | ✗ | ✓ (HTML, URL, imagens) |
| Manipulação de PDF | ✗ | ✓ (mesclar, dividir, editar) |
| HTML para PDF | ✗ | ✓ (Motor Chromium) |
| Extração de texto | ✗ | ✓ |
| Marcas d'água | ✗ | ✓ |
| Cabeçalhos/Rodapés | ✗ | ✓ |
| Segurança | ✗ | ✓ |
| Visualizador integrado | ✓ | ✗ (focado no backend) |
| Suporte da plataforma | Somente Windows Forms | Console, Web, Área de Trabalho |
| Suporte de estrutura | .NET Framework | .NET Framework, Core, 5+ |
| Manutenção | Incerto | Ativo |
Para equipes que planejam a adoção do .NET 10 e do C# 14 até 2025 e 2026, o IronPDF oferece uma base abrangente e com manutenção ativa que funciona em todos os tipos de aplicativos .NET , eliminando a restrição do Windows Forms e a complexidade dos binários nativos.
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 Visualizador de PDF packages
dotnet remove package PdfiumViewer
dotnet remove package PdfiumViewer.Native.x86.v8-xfa
dotnet remove package PdfiumViewer.Native.x64.v8-xfa
# Install IronPDF
dotnet add package IronPdf
# Remove Visualizador de PDF packages
dotnet remove package PdfiumViewer
dotnet remove package PdfiumViewer.Native.x86.v8-xfa
dotnet remove package PdfiumViewer.Native.x64.v8-xfa
# 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 do PdfiumViewer
# Find Visualizador de PDF usage
grep -r "PdfiumViewer\|PdfViewer\|PdfDocument\.Load" --include="*.cs" .
# Find native binary references
grep -r "pdfium\.dll\|Native\.x86\|Native\.x64" --include="*.csproj" .
# Find viewer control usage
grep -r "PdfViewer" --include="*.cs" --include="*.Designer.cs" .
# Find Visualizador de PDF usage
grep -r "PdfiumViewer\|PdfViewer\|PdfDocument\.Load" --include="*.cs" .
# Find native binary references
grep -r "pdfium\.dll\|Native\.x86\|Native\.x64" --include="*.csproj" .
# Find viewer control usage
grep -r "PdfViewer" --include="*.cs" --include="*.Designer.cs" .
Referência completa da API
Alterações de namespace
// PdfiumViewer
using PdfiumViewer;
// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
// PdfiumViewer
using PdfiumViewer;
// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
Imports PdfiumViewer
Imports IronPdf
Imports IronPdf.Rendering
Imports IronPdf.Editing
Mapeamentos de Classes Principais
| Visualizador de PDF | IronPDF |
|---|---|
PdfDocument |
PdfDocument |
PdfViewer |
(sem equivalente) |
PdfRenderer |
ChromePdfRenderer |
| (não disponível) | HtmlHeaderFooter |
Mapeamentos de carregamento de documentos
| Visualizador de PDF | IronPDF |
|---|---|
PdfDocument.Load(path) |
PdfDocument.FromFile(path) |
PdfDocument.Load(stream) |
PdfDocument.FromStream(stream) |
PdfDocument.Load(bytes) |
PdfDocument.FromBinaryData(bytes) |
Mapeamentos de propriedades de documentos
| Visualizador de PDF | IronPDF |
|---|---|
document.PageCount |
document.PageCount |
document.PageSizes |
document.Pages[i].Width/Height |
document.GetPageSize(index) |
document.Pages[index].Width/Height |
Mapeamentos de renderização de página
| Visualizador de PDF | IronPDF |
|---|---|
document.Render(pageIndex, dpiX, dpiY, forPrinting) |
pdf.ToBitmap(pageIndex) |
document.Render(pageIndex, width, height, dpiX, dpiY, flags) |
pdf.RasterizeToImageFiles(path, dpi) |
Salvando Mapeamentos de Documentos
| Visualizador de PDF | IronPDF |
|---|---|
document.Save(path) |
pdf.SaveAs(path) |
document.Save(stream) |
pdf.Stream |
| (não disponível) | pdf.BinaryData |
Novos recursos não disponíveis no PdfiumViewer
| Recurso IronPDF | Descrição |
|---|---|
pdf.ExtractAllText() |
Extrair texto de todas as páginas |
pdf.ExtractTextFromPage(index) |
Extrair texto de uma página específica |
ChromePdfRenderer.RenderHtmlAsPdf() |
Criar a partir de HTML |
ChromePdfRenderer.RenderUrlAsPdf() |
Criar a partir de um URL |
PdfDocument.Merge() |
Combinar PDFs |
pdf.CopyPages() |
Páginas extraídas |
pdf.RemovePages() |
Excluir páginas |
pdf.ApplyWatermark() |
Adicionar marcas d'água |
pdf.AddHtmlHeaders() |
Adicionar cabeçalhos |
pdf.AddHtmlFooters() |
Adicionar rodapés |
pdf.SecuritySettings |
Proteção por senha |
pdf.Form |
Preenchimento de formulário |
Exemplos de migração de código
Exemplo 1: Extração de texto de um PDF
Antes (PdfiumViewer):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Text;
string pdfPath = "document.pdf";
// PDFiumViewer has limited text extraction capabilities
// It's primarily designed for rendering, not text extraction
using (var document = PdfDocument.Load(pdfPath))
{
int pageCount = document.PageCount;
Console.WriteLine($"Total pages: {pageCount}");
// PDFiumViewer does not have built-in text extraction
// You would need to use OCR or another library
// It can only render pages as images
for (int i = 0; i < pageCount; i++)
{
var pageImage = document.Render(i, 96, 96, false);
Console.WriteLine($"Rendered page {i + 1}");
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Text;
string pdfPath = "document.pdf";
// PDFiumViewer has limited text extraction capabilities
// It's primarily designed for rendering, not text extraction
using (var document = PdfDocument.Load(pdfPath))
{
int pageCount = document.PageCount;
Console.WriteLine($"Total pages: {pageCount}");
// PDFiumViewer does not have built-in text extraction
// You would need to use OCR or another library
// It can only render pages as images
for (int i = 0; i < pageCount; i++)
{
var pageImage = document.Render(i, 96, 96, false);
Console.WriteLine($"Rendered page {i + 1}");
}
}
Imports PdfiumViewer
Imports System
Imports System.Text
Dim pdfPath As String = "document.pdf"
' PDFiumViewer has limited text extraction capabilities
' It's primarily designed for rendering, not text extraction
Using document = PdfDocument.Load(pdfPath)
Dim pageCount As Integer = document.PageCount
Console.WriteLine($"Total pages: {pageCount}")
' PDFiumViewer does not have built-in text extraction
' You would need to use OCR or another library
' It can only render pages as images
For i As Integer = 0 To pageCount - 1
Dim pageImage = document.Render(i, 96, 96, False)
Console.WriteLine($"Rendered page {i + 1}")
Next
End Using
Após (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string pdfPath = "document.pdf";
// Open and extract text from PDF
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst page text: {pageText}");
Console.WriteLine($"\nTotal pages: {pdf.PageCount}");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string pdfPath = "document.pdf";
// Open and extract text from PDF
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);
// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst page text: {pageText}");
Console.WriteLine($"\nTotal pages: {pdf.PageCount}");
Imports IronPdf
Imports System
Module Program
Sub Main()
Dim pdfPath As String = "document.pdf"
' Open and extract text from PDF
Dim pdf As PdfDocument = PdfDocument.FromFile(pdfPath)
' Extract text from all pages
Dim allText As String = pdf.ExtractAllText()
Console.WriteLine("Extracted Text:")
Console.WriteLine(allText)
' Extract text from specific page
Dim pageText As String = pdf.ExtractTextFromPage(0)
Console.WriteLine(vbCrLf & "First page text: " & pageText)
Console.WriteLine(vbCrLf & "Total pages: " & pdf.PageCount)
End Sub
End Module
Este exemplo destaca uma lacuna fundamental de funcionalidade. O Visualizador de PDF afirma explicitamente que "não possui extração de texto integrada" e que "você precisaria usar OCR ou outra biblioteca" — ele só consegue renderizar páginas como imagens. Se você precisar extrair texto de um PDF com o PdfiumViewer, será obrigado a renderizá-lo como uma imagem e executar o OCR.
O IronPDF oferece extração de texto nativa com ExtractAllText() para o documento inteiro ou ExtractTextFromPage(index) para páginas específicas. Sem OCR, sem soluções alternativas — extração direta de texto do conteúdo do PDF. Consulte a documentação de extração de texto para obter opções adicionais.
Exemplo 2: Conversão de HTML para PDF
Antes (PdfiumViewer):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// PDFiumViewer is primarily a PDF viewer/renderer, not a generator
// It cannot directly convert HTML to PDF
// You would need to use another library to first create the PDF
// Then use PDFiumViewer to display it:
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// This functionality is NOT available in PDFiumViewer
// You would need a different library like wkhtmltopdf or similar
// PDFiumViewer can only open and display existing PDFs:
string existingPdfPath = "output.pdf";
using (var document = PdfDocument.Load(existingPdfPath))
{
// Can only render/display existing PDF
var image = document.Render(0, 300, 300, true);
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// PDFiumViewer is primarily a PDF viewer/renderer, not a generator
// It cannot directly convert HTML to PDF
// You would need to use another library to first create the PDF
// Then use PDFiumViewer to display it:
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// This functionality is NOT available in PDFiumViewer
// You would need a different library like wkhtmltopdf or similar
// PDFiumViewer can only open and display existing PDFs:
string existingPdfPath = "output.pdf";
using (var document = PdfDocument.Load(existingPdfPath))
{
// Can only render/display existing PDF
var image = document.Render(0, 300, 300, true);
}
Imports PdfiumViewer
Imports System.IO
Imports System.Drawing.Printing
' PDFiumViewer is primarily a PDF viewer/renderer, not a generator
' It cannot directly convert HTML to PDF
' You would need to use another library to first create the PDF
' Then use PDFiumViewer to display it:
Dim htmlContent As String = "<h1>Hello World</h1><p>This is a test document.</p>"
' This functionality is NOT available in PDFiumViewer
' You would need a different library like wkhtmltopdf or similar
' PDFiumViewer can only open and display existing PDFs:
Dim existingPdfPath As String = "output.pdf"
Using document = PdfDocument.Load(existingPdfPath)
' Can only render/display existing PDF
Dim image = document.Render(0, 300, 300, True)
End Using
Após (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
Imports IronPdf
Imports System
Module Program
Sub Main()
Dim htmlContent As String = "<h1>Hello World</h1><p>This is a test document.</p>"
' Create a PDF from HTML string
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Module
Este exemplo demonstra a diferença de capacidade mais significativa entre as duas bibliotecas. O PDFiumViewer afirma explicitamente que "Esta funcionalidade NÃO está disponível no PDFiumViewer" e que "Você precisaria de uma biblioteca diferente, como wkhtmltopdf ou similar" — o PDFiumViewer só pode abrir e exibir PDFs existentes.
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.
Exemplo 3: Conversão de PDF para imagem
Antes (PdfiumViewer):
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Drawing;
using System.Drawing.Imaging;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// PDFiumViewer excels at rendering PDFs to images
using (var document = PdfDocument.Load(pdfPath))
{
// Render first page at 300 DPI
int dpi = 300;
using (var image = document.Render(0, dpi, dpi, true))
{
// Save as PNG
image.Save(outputImage, ImageFormat.Png);
Console.WriteLine($"Page rendered to {outputImage}");
}
// Render all pages
for (int i = 0; i < document.PageCount; i++)
{
using (var pageImage = document.Render(i, 150, 150, true))
{
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png);
}
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Drawing;
using System.Drawing.Imaging;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// PDFiumViewer excels at rendering PDFs to images
using (var document = PdfDocument.Load(pdfPath))
{
// Render first page at 300 DPI
int dpi = 300;
using (var image = document.Render(0, dpi, dpi, true))
{
// Save as PNG
image.Save(outputImage, ImageFormat.Png);
Console.WriteLine($"Page rendered to {outputImage}");
}
// Render all pages
for (int i = 0; i < document.PageCount; i++)
{
using (var pageImage = document.Render(i, 150, 150, true))
{
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png);
}
}
}
Imports PdfiumViewer
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Module Module1
Sub Main()
Dim pdfPath As String = "document.pdf"
Dim outputImage As String = "page1.png"
' PDFiumViewer excels at rendering PDFs to images
Using document = PdfDocument.Load(pdfPath)
' Render first page at 300 DPI
Dim dpi As Integer = 300
Using image = document.Render(0, dpi, dpi, True)
' Save as PNG
image.Save(outputImage, ImageFormat.Png)
Console.WriteLine($"Page rendered to {outputImage}")
End Using
' Render all pages
For i As Integer = 0 To document.PageCount - 1
Using pageImage = document.Render(i, 150, 150, True)
pageImage.Save($"page_{i + 1}.png", ImageFormat.Png)
End Using
Next
End Using
End Sub
End Module
Após (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Linq;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// Open PDF and convert to images
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Convert first page to image
var firstPageImage = pdf.ToBitmap(0);
firstPageImage[0].Save(outputImage);
Console.WriteLine($"Page rendered to {outputImage}");
// Convert all pages to images
var allPageImages = pdf.ToBitmap();
for (int i = 0; i < allPageImages.Length; i++)
{
allPageImages[i].Save($"page_{i + 1}.png");
Console.WriteLine($"Saved page {i + 1}");
}
Console.WriteLine($"Total pages converted: {pdf.PageCount}");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Linq;
string pdfPath = "document.pdf";
string outputImage = "page1.png";
// Open PDF and convert to images
PdfDocument pdf = PdfDocument.FromFile(pdfPath);
// Convert first page to image
var firstPageImage = pdf.ToBitmap(0);
firstPageImage[0].Save(outputImage);
Console.WriteLine($"Page rendered to {outputImage}");
// Convert all pages to images
var allPageImages = pdf.ToBitmap();
for (int i = 0; i < allPageImages.Length; i++)
{
allPageImages[i].Save($"page_{i + 1}.png");
Console.WriteLine($"Saved page {i + 1}");
}
Console.WriteLine($"Total pages converted: {pdf.PageCount}");
Imports IronPdf
Imports System
Imports System.Linq
Module Module1
Sub Main()
Dim pdfPath As String = "document.pdf"
Dim outputImage As String = "page1.png"
' Open PDF and convert to images
Dim pdf As PdfDocument = PdfDocument.FromFile(pdfPath)
' Convert first page to image
Dim firstPageImage = pdf.ToBitmap(0)
firstPageImage(0).Save(outputImage)
Console.WriteLine($"Page rendered to {outputImage}")
' Convert all pages to images
Dim allPageImages = pdf.ToBitmap()
For i As Integer = 0 To allPageImages.Length - 1
allPageImages(i).Save($"page_{i + 1}.png")
Console.WriteLine($"Saved page {i + 1}")
Next
Console.WriteLine($"Total pages converted: {pdf.PageCount}")
End Sub
End Module
Esta é uma área em que o Visualizador de PDF se destaca — a renderização de PDFs em imagens é seu principal ponto forte. Ambas as bibliotecas lidam com essa tarefa de forma eficaz, mas com padrões diferentes.
O Visualizador de PDF usa document.Render(pageIndex, dpiX, dpiY, forPrinting) com instruções using aninhadas para descarte adequado. Você precisa importar System.Drawing e System.Drawing.Imaging para o enum ImageFormat.
IronPDF usa pdf.ToBitmap(pageIndex) que retorna uma matriz de bitmap. O padrão é mais simples sem requisitos de descarte aninhados. Para operações em lote, ToBitmap() sem parâmetros retorna todas as páginas. Você também pode usar RasterizeToImageFiles() para saída direta de arquivo. Consulte a documentação de conversão de PDF em imagem para obter opções de renderização adicionais.
Remoção de dependências nativas
Um dos benefícios significativos da migração do Visualizador de PDF para o IronPDF é a eliminação do gerenciamento de binários nativos.
Antes (PdfiumViewer) - Implantação Complexa
MyApp/
├── bin/
│ ├── MyApp.dll
│ ├── PdfiumViewer.dll
│ ├── x86/
│ │ └── pdfium.dll
│ └── x64/
│ └── 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 native package references
# <PackageReference Include="PdfiumViewer.Native.x86.v8-xfa" />
# <PackageReference Include="PdfiumViewer.Native.x64.v8-xfa" />
# Delete native PDFium binaries
rm -rf x86/ x64/ runtimes/
# Remove from .csproj native package references
# <PackageReference Include="PdfiumViewer.Native.x86.v8-xfa" />
# <PackageReference Include="PdfiumViewer.Native.x64.v8-xfa" />
Notas críticas sobre migração
Sem controle de visualização integrado
O IronPDF é focado no backend e não inclui um controle visual para visualização de PDF:
// PdfiumViewer: Built-in viewer control
pdfViewer.Document = document;
// IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath);
Process.Start(new ProcessStartInfo(tempPath) { UseShellExecute = true });
// PdfiumViewer: Built-in viewer control
pdfViewer.Document = document;
// IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath);
Process.Start(new ProcessStartInfo(tempPath) { UseShellExecute = true });
' PdfiumViewer: Built-in viewer control
pdfViewer.Document = document
' IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath)
Process.Start(New ProcessStartInfo(tempPath) With {.UseShellExecute = True})
Para visualização, considere usar Process.Start() para abrir no visualizador de PDF padrão, um controle WebBrowser com o caminho do PDF ou controles de visualização de terceiros, como Syncfusion, DevExpress ou Telerik.
Alteração do método de carregamento do documento
// PdfiumViewer
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
// PdfiumViewer
PdfDocument.Load(path)
// IronPDF
PdfDocument.FromFile(path)
' PdfiumViewer
PdfDocument.Load(path)
' IronPDF
PdfDocument.FromFile(path)
Salvar alteração de método
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
Alteração do método de renderização
// PdfiumViewer: Returns image with nested using
using (var image = document.Render(0, 150, 150, true))
{
image.Save("page.png", ImageFormat.Png);
}
// IronPDF: Returns bitmap array
var images = pdf.ToBitmap(0);
images[0].Save("page.png");
// PdfiumViewer: Returns image with nested using
using (var image = document.Render(0, 150, 150, true))
{
image.Save("page.png", ImageFormat.Png);
}
// IronPDF: Returns bitmap array
var images = pdf.ToBitmap(0);
images[0].Save("page.png");
Imports System.Drawing.Imaging
' PdfiumViewer: Returns image with nested using
Using image = document.Render(0, 150, 150, True)
image.Save("page.png", ImageFormat.Png)
End Using
' IronPDF: Returns bitmap array
Dim images = pdf.ToBitmap(0)
images(0).Save("page.png")
Alterar o tamanho da página Acesso
// PdfiumViewer
var size = document.PageSizes[index];
Console.WriteLine($"{size.Width} x {size.Height}");
// IronPDF
var page = pdf.Pages[index];
Console.WriteLine($"{page.Width} x {page.Height}");
// PdfiumViewer
var size = document.PageSizes[index];
Console.WriteLine($"{size.Width} x {size.Height}");
// IronPDF
var page = pdf.Pages[index];
Console.WriteLine($"{page.Width} x {page.Height}");
' PdfiumViewer
Dim size = document.PageSizes(index)
Console.WriteLine($"{size.Width} x {size.Height}")
' IronPDF
Dim page = pdf.Pages(index)
Console.WriteLine($"{page.Width} x {page.Height}")
Resumo da comparação de recursos
| Recurso | Visualizador de PDF | IronPDF |
|---|---|---|
| Carregar PDF | ✓ | ✓ |
| Renderizar para imagem | ✓ | ✓ |
| Visualizador integrado | ✓ | ✗ |
| Imprimir PDF | ✓ | ✓ |
| Texto extraído | ✗ | ✓ |
| 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 | ✗ | ✓ |
| Proteção por senha | ✗ | ✓ |
| Suporte WinForms | ✓ | ✓ |
| Suporte a ASP.NET | ✗ | ✓ |
| Suporte ao .NET Core | Limitado | ✓ |
| Manutenção ativa | Incerto | ✓ |
Lista de verificação para migração
Pré-migração
- Identificar todas as utilizações do Visualizador de PDF na base de código.
- Listar formulários WinForms usando o controle PdfViewer
- Documente as configurações atuais de DPI de renderização.
- Verificar referências binárias nativas
- Identificar a utilização da funcionalidade de impressão
- Estratégia de substituição do controle do visualizador de plantas
- Obtenha a chave de licença do IronPDF
Alterações no pacote
- Remover o pacote NuGet
PdfiumViewer - Remover o pacote
PdfiumViewer.Native.x86.v8-xfa - Remover o pacote
PdfiumViewer.Native.x64.v8-xfa - Exclua os binários nativos do pdfium.dll das pastas x86/ e x64/.
- 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()Substituadocument.Render()porpdf.ToBitmap()ouRasterizeToImageFiles() - Substitua
document.PageSizes[i]porpdf.Pages[i].Width/Height - Substitua o controle PdfViewer por um visualizador externo ou por Process.Start().
- Adicionar novas funcionalidades (extração de texto, HTML para PDF, etc.)
Pós-migração
- Testar a qualidade da renderização
- Testar a funcionalidade de impressão
- Testar nas plataformas alvo
- Adicionar novas funcionalidades (HTML para PDF, mesclagem, marcas d'água, segurança)
- Atualizar documentação

