Ir para o conteúdo do rodapé
GUIAS DE MIGRAçãO

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

  1. 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.

  2. Específico para Windows Forms: A biblioteca é focada em aplicativos Windows Forms, não oferecendo suporte para outras estruturas de interface do usuário.

  3. Sem manipulação de PDF: Não é possível mesclar, dividir ou modificar o conteúdo do PDF.

  4. Dependências binárias nativas: Requer binários PDFium específicos da plataforma (arquivos pdfium.dll para x86 e x64).

  5. Manutenção incerta: atualizações limitadas e suporte a longo prazo incerto.

  6. 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.

  7. 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.

  8. Sem cabeçalhos/rodapés: Não é possível adicionar números de página ou conteúdo repetido.

  9. Sem marcas d'água: Não é possível carimbar documentos com sobreposições.

  10. 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

  1. Ambiente .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Acesso ao NuGet : Capacidade de instalar pacotes NuGet.
  3. 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
SHELL

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"
$vbLabelText   $csharpLabel

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" .
SHELL

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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" />
SHELL

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})
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

Salvar alteração de método

// PdfiumViewer
document.Save(path)

// IronPDF
pdf.SaveAs(path)
// PdfiumViewer
document.Save(path)

// IronPDF
pdf.SaveAs(path)
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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}")
$vbLabelText   $csharpLabel

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() por PdfDocument.FromFile()
  • Substitua document.Save() por pdf.SaveAs() Substitua document.Render() por pdf.ToBitmap() ou RasterizeToImageFiles()
  • Substitua document.PageSizes[i] por pdf.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

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim