Como visualizar PDFs em .NET com IronPDF C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF exibe PDFs em aplicativos .NET através do controle IronPdf.Viewer.Maui para MAUI, rasterizando páginas para imagens com RasterizeToImageFiles para qualquer framework de UI e através de controles de host como o WebView2 em WPF e Windows Forms. A escolha certa depende de que tipo de aplicativo você está construindo e de quanto visualizador chrome você precisa.

"Visualizar" significa coisas diferentes em cada um desses caminhos. O visualizador MAUI é um componente interativo completo com uma barra de ferramentas. O caminho de rasterização transforma cada página em uma imagem que você pode mostrar em qualquer controle. As rotas de WebView2 e visualizador padrão entregam o arquivo para um motor de navegador ou para o leitor de PDF instalado pelo usuário. Este artigo mostra cada uma delas e é honesto sobre o que elas fazem e o que não oferecem.

Início rápido: Visualize um PDF no MAUI com IronPDF

Adicione o pacote NuGet IronPdf.Viewer.Maui, chame ConfigureIronPdfView() em MauiProgram.cs, depois vincule um PDF a um IronPdfView. A linha única abaixo carrega um arquivo no controle de visualização.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho de código.

    new IronPdf.Viewer.Maui.IronPdfView { Source = IronPdf.Viewer.Maui.IronPdfViewSource.FromFile("document.pdf") };
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Instale o pacote primeiro com Install-Package IronPdf.Viewer.Maui, e adicione sua chave de licença IronPDF em ConfigureIronPdfView para remover o banner de teste. O tutorial do visualizador MAUI percorre a configuração completa do projeto.


Como visualizar PDFs em ASP.NET e MVC?

Sirva o PDF a partir de uma ação do controlador e incorpore-o com um iframe HTML. O visualizador de PDF embutido no navegador trata da renderização, assim o documento aparece em linha enquanto o layout da sua página permanece intacto. Quando o PDF é gerado dinamicamente, a conversão de HTML para PDF do IronPDF produz o arquivo que a ação retorna.

// Controller action to serve PDF
public ActionResult ViewPdf()
{
    var pdfPath = Server.MapPath("~/Content/sample.pdf");
    return File(pdfPath, "application/pdf");
}

// In your Razor view
<iframe src="@Url.Action("ViewPdf")" width="100%" height="600px"></iframe>
// Controller action to serve PDF
public ActionResult ViewPdf()
{
    var pdfPath = Server.MapPath("~/Content/sample.pdf");
    return File(pdfPath, "application/pdf");
}

// In your Razor view
<iframe src="@Url.Action("ViewPdf")" width="100%" height="600px"></iframe>
Imports System.Web.Mvc

' Controller action to serve PDF
Public Function ViewPdf() As ActionResult
    Dim pdfPath = Server.MapPath("~/Content/sample.pdf")
    Return File(pdfPath, "application/pdf")
End Function

' In your Razor view
<iframe src="@Url.Action("ViewPdf")" width="100%" height="600px"></iframe>
$vbLabelText   $csharpLabel

Se você precisar de seleção de texto, zoom e navegação de página que você controla em vez do padrão do navegador, renderize as páginas do PDF para imagens (mostrado abaixo) e as exiba, ou conecte um visualizador JavaScript de sua escolha.


Como exibir páginas PDF como imagens em WPF, WinForms ou Blazor?

Chame RasterizeToImageFiles para transformar cada página PDF em um PNG, depois mostre essas imagens em qualquer controle: um Image WPF, um PictureBox WinForms, ou um <img> em um componente Blazor. Este é o caminho de visualização nativo do IronPDF. Funciona da mesma forma em todos os frameworks de UI e em todos os sistemas operacionais suportados pelo IronPDF, porque produz arquivos de imagem simples em vez de depender de um controle de navegador host.

Entrada

:path=/static-assets/pdf/content-code-examples/how-to/net-pdf-viewer-rasterize.cs
using IronPdf;

// Load the PDF you want to display.
PdfDocument pdf = PdfDocument.FromFile("sample-report.pdf");

// Render every page to a PNG. The asterisk in the path is replaced with the page number,
// producing viewer-page-1.png, viewer-page-2.png, and so on. The last argument (100) is the DPI.
pdf.RasterizeToImageFiles("viewer-page-*.png", IronPdf.Imaging.ImageType.Png, 100);

// To show a page inside a GUI control without writing to disk, get in-memory bitmaps instead.
// ToBitmap returns one AnyBitmap per page; bind bitmaps[0] to a WPF Image or a WinForms PictureBox.
var bitmaps = pdf.ToBitmap();
bitmaps[0].SaveAs("viewer-firstpage.png");
Imports IronPdf

' Load the PDF you want to display.
Dim pdf As PdfDocument = PdfDocument.FromFile("sample-report.pdf")

' Render every page to a PNG. The asterisk in the path is replaced with the page number,
' producing viewer-page-1.png, viewer-page-2.png, and so on. The last argument (100) is the DPI.
pdf.RasterizeToImageFiles("viewer-page-*.png", IronPdf.Imaging.ImageType.Png, 100)

' To show a page inside a GUI control without writing to disk, get in-memory bitmaps instead.
' ToBitmap returns one AnyBitmap per page; bind bitmaps(0) to a WPF Image or a WinForms PictureBox.
Dim bitmaps = pdf.ToBitmap()
bitmaps(0).SaveAs("viewer-firstpage.png")
$vbLabelText   $csharpLabel

Saída

Primeira página do relatório de exemplo em PDF rasterizada para uma imagem PNG para exibição em um controle de interface .NET

Para uma opção na memória, ToBitmap retorna uma imagem por página que você pode vincular a um controle sem tocar no disco. Ajuste o argumento DPI para equilibrar o tamanho do arquivo com a nitidez, o mesmo controle que você tem sobre as opções de renderização do IronPDF ao produzir o documento.


Como faço para visualizar PDFs em aplicativos WPF?

Hospede o PDF em um controle WebView2, que usa o motor Chromium do Microsoft Edge e vem com seu próprio visualizador de PDF (incluindo barra de ferramentas, zoom e impressão). Salve o documento no disco, depois navegue o controle até o URI do arquivo. WebView2 é o substituto atual para o controle mais antigo WebBrowser, que dependia do motor descontinuado do Internet Explorer.

:path=/static-assets/pdf/content-code-examples/how-to/net-pdf-viewer-wpf-viewer.cs
// WPF: display a PDF using the WebView2 control (Microsoft Edge / Chromium).
// Install the NuGet package Microsoft.Web.WebView2 and add a <wv2:WebView2 x:Name="pdfWebView" />
// element to your XAML (xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf").
// WebView2 renders PDFs with the same built-in viewer as the Edge browser (toolbar, zoom, print).
using System;
using System.IO;

// Save the IronPDF-generated document to disk first, then point WebView2 at it.
var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
string pdfPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "document.pdf");
pdf.SaveAs(pdfPath);

// pdfWebView is the WebView2 control declared in your XAML.
// EnsureCoreWebView2Async must complete before navigating.
await pdfWebView.EnsureCoreWebView2Async();
pdfWebView.CoreWebView2.Navigate(new Uri(pdfPath).AbsoluteUri);

// Legacy alternative: the older System.Windows.Controls.WebBrowser control still works on
// Windows machines that have a PDF handler installed, but it relies on the deprecated Internet
// Explorer engine and is not recommended for new applications. Prefer WebView2 above.
Imports System
Imports System.IO
Imports IronPdf

' WPF: display a PDF using the WebView2 control (Microsoft Edge / Chromium).
' Install the NuGet package Microsoft.Web.WebView2 and add a <wv2:WebView2 x:Name="pdfWebView" />
' element to your XAML (xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf").
' WebView2 renders PDFs with the same built-in viewer as the Edge browser (toolbar, zoom, print).

' Save the IronPDF-generated document to disk first, then point WebView2 at it.
Dim pdf = New ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello IronPDF</h1>")
Dim pdfPath As String = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "document.pdf")
pdf.SaveAs(pdfPath)

' pdfWebView is the WebView2 control declared in your XAML.
' EnsureCoreWebView2Async must complete before navigating.
Await pdfWebView.EnsureCoreWebView2Async()
pdfWebView.CoreWebView2.Navigate(New Uri(pdfPath).AbsoluteUri)

' Legacy alternative: the older System.Windows.Controls.WebBrowser control still works on
' Windows machines that have a PDF handler installed, but it relies on the deprecated Internet
' Explorer engine and is not recommended for new applications. Prefer WebView2 above.
$vbLabelText   $csharpLabel

AvisoWebView2 requer o Runtime do Microsoft Edge WebView2 na máquina alvo. Está pré-instalado nas versões atuais do Windows 11; para sistemas mais antigos, forneça o bootstrapper Evergreen com seu instalador.


Icon Quote related to Como faço para visualizar PDFs em aplicativos WPF?

Minha biblioteca favorita desse tipo é o IronPDF. Ele permite a manipulação rápida e eficiente de arquivos PDF. Além disso, possui muitos recursos valiosos, como a exportação para o formato PDF/A e a assinatura digital de documentos PDF.

Milan Jovanovic related to Como faço para visualizar PDFs em aplicativos WPF?

Milan Jovanovic

Microsoft MVP

Veja o estudo de caso
Icon Quote related to Como faço para visualizar PDFs em aplicativos WPF?

Com o IronOCR, podemos economizar US$ 40.000 por ano em processamento manual, ao mesmo tempo que aumentamos a produtividade e liberamos recursos para tarefas de alto impacto. Eu o recomendo fortemente.

Brent Matzelle related to Como faço para visualizar PDFs em aplicativos WPF?

Brent Matzelle

Diretor de Tecnologia, OPYN

Veja o estudo de caso
Icon Quote related to Como faço para visualizar PDFs em aplicativos WPF?

O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário.

David Jones related to Como faço para visualizar PDFs em aplicativos WPF?

David Jones

Engenheiro(a) de Software Líder, Agorus Build

Veja o estudo de caso

Como faço para visualizar PDFs no Windows Forms?

Insira um controle WebView2 no seu formulário e aponte-o para o PDF salvo, exatamente como no WPF. O controle inicializa de forma assíncrona, então aguarde EnsureCoreWebView2Async antes de chamar Navigate. Isso dá aos aplicativos WinForms o mesmo visualizador baseado em Chromium sem agrupar um componente de terceiros.

:path=/static-assets/pdf/content-code-examples/how-to/net-pdf-viewer-winforms-viewer.cs
// Windows Forms: display a PDF using the WebView2 control (Microsoft Edge / Chromium).
// Install the NuGet package Microsoft.Web.WebView2, then drag a WebView2 control onto your form
// (or add it in code) and name it pdfWebView.
using System;
using System.IO;

// Generate or load the PDF with IronPDF, then save it so WebView2 can open the file.
var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello IronPDF</h1>");
string pdfPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "document.pdf");
pdf.SaveAs(pdfPath);

// pdfWebView is the WebView2 control on your form.
// Initialize the runtime, then navigate to the local file URI.
await pdfWebView.EnsureCoreWebView2Async();
pdfWebView.CoreWebView2.Navigate(new Uri(pdfPath).AbsoluteUri);

// Legacy alternative: the System.Windows.Forms.WebBrowser control can host a PDF when a system
// PDF handler is registered, but it uses the deprecated Internet Explorer engine. Use WebView2
// for new projects so the viewer works consistently across modern Windows installs.
Imports System
Imports System.IO
Imports IronPdf

' Generate or load the PDF with IronPDF, then save it so WebView2 can open the file.
Dim pdf = New ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello IronPDF</h1>")
Dim pdfPath As String = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "document.pdf")
pdf.SaveAs(pdfPath)

' pdfWebView is the WebView2 control on your form.
' Initialize the runtime, then navigate to the local file URI.
Await pdfWebView.EnsureCoreWebView2Async()
pdfWebView.CoreWebView2.Navigate(New Uri(pdfPath).AbsoluteUri)

' Legacy alternative: the System.Windows.Forms.WebBrowser control can host a PDF when a system
' PDF handler is registered, but it uses the deprecated Internet Explorer engine. Use WebView2
' for new projects so the viewer works consistently across modern Windows installs.
$vbLabelText   $csharpLabel

Se você preferir não hospedar um controle de navegador de forma alguma, a abordagem baseada em imagem da seção acima cai diretamente em um PictureBox e evita completamente a dependência de tempo de execução do WebView2.


Como faço para visualizar PDFs no visualizador de PDF padrão do sistema?

Passe o caminho do arquivo para System.Diagnostics.Process.Start para abrir o PDF em qualquer leitor que o usuário tenha definido como padrão, como um navegador ou Adobe Acrobat. Isso entrega a renderização para um aplicativo externo em vez de incorporá-la, o que é adequado para utilitários e ferramentas de processamento em lote que só precisam exibir o arquivo finalizado.

:path=/static-assets/pdf/content-code-examples/how-to/net-pdf-viewer-default-pdf-viewer.cs
using IronPdf;

// Render any HTML fragment or document to HTML
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");

var outputPath = "ChromePdfRenderer.pdf";

// Export PDF document
pdf.SaveAs(outputPath);

// This neat trick opens our PDF file so we can see the result in our default PDF viewer
System.Diagnostics.Process.Start(outputPath);
Imports IronPdf

' Render any HTML fragment or document to HTML
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")

Private outputPath = "ChromePdfRenderer.pdf"

' Export PDF document
pdf.SaveAs(outputPath)

' This neat trick opens our PDF file so we can see the result in our default PDF viewer
System.Diagnostics.Process.Start(outputPath)
$vbLabelText   $csharpLabel

Em produção, envolva a chamada para que a ausência de um manipulador de PDF não provoque a falha do aplicativo:

try
{
    var psi = new System.Diagnostics.ProcessStartInfo
    {
        FileName = outputPath,
        UseShellExecute = true
    };
    System.Diagnostics.Process.Start(psi);
}
catch (Exception ex)
{
    // Handle the case where no PDF viewer is installed
    MessageBox.Show($"Unable to open PDF: {ex.Message}");
}
try
{
    var psi = new System.Diagnostics.ProcessStartInfo
    {
        FileName = outputPath,
        UseShellExecute = true
    };
    System.Diagnostics.Process.Start(psi);
}
catch (Exception ex)
{
    // Handle the case where no PDF viewer is installed
    MessageBox.Show($"Unable to open PDF: {ex.Message}");
}
Imports System.Diagnostics
Imports System.Windows.Forms

Try
    Dim psi As New ProcessStartInfo With {
        .FileName = outputPath,
        .UseShellExecute = True
    }
    Process.Start(psi)
Catch ex As Exception
    ' Handle the case where no PDF viewer is installed
    MessageBox.Show($"Unable to open PDF: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Conclusão

Cada caminho de visualização aqui troca interatividade por portabilidade: o visualizador MAUI oferece uma barra de ferramentas completa, rasterizar para imagens funciona em qualquer UI em qualquer plataforma, WebView2 reutiliza o motor Edge, e Process.Start delega ao leitor do usuário. Escolha aquele que melhor se adapta ao seu aplicativo em vez de forçar uma única resposta.

Como a maioria das visualizações começa com um documento que você gerou, combine essas técnicas com o tutorial completo do visualizador MAUI quando você precisar de um componente de barra de ferramentas interativo.

Perguntas frequentes

Como posso exibir PDFs em um aplicativo .NET MAUI?

O IronPDF envia um componente visualizador de PDF interativo para projetos MAUI no pacote NuGet IronPdf.Viewer.Maui. Após instalar o pacote e chamar ConfigureIronPdfView(), você pode vincular um PDF a um controle IronPdfView, carregando-o de um arquivo com IronPdfViewSource.FromFile ou de um fluxo. Este componente MAUI é o único caminho que oferece uma barra de ferramentas embutida; em desktop e web, você visualiza PDFs hospedando WebView2, incorporando um iframe ou rasterizando páginas para imagens.

Qual a maneira mais fácil de visualizar PDFs em aplicações web ASP.NET?

Para aplicações ASP.NET, o IronPDF suporta a visualização de PDFs através de janelas do navegador ou iframes. A abordagem com iframe é particularmente eficaz, pois mantém o layout da sua aplicação enquanto exibe o conteúdo do PDF diretamente no código. Você também pode usar os recursos de conversão de HTML para PDF do IronPDF para gerar PDFs dinâmicos em tempo real para visualização.

Posso integrar a visualização de PDFs em aplicativos WPF e WinForms?

Sim. Para WPF e WinForms, hospede um controle WebView2 e navegue até um PDF salvo; o WebView2 usa o motor Chromium do Microsoft Edge e inclui sua própria barra de ferramentas, zoom e impressão. O WebView2 substitui o controle WebBrowser mais antigo que dependia do motor Internet Explorer descontinuado. Se você preferir não hospedar um controle de navegador, rasterize cada página em uma imagem com RasterizeToImageFiles e mostre-a em uma Image ou PictureBox. IronPDF também gerencia assinaturas digitais, preenchimento de formulários e compressão de PDF nos mesmos documentos.

É possível usar o visualizador de PDF padrão do sistema com aplicativos .NET?

Com certeza. O IronPDF oferece suporte à integração com o visualizador de PDF padrão do sistema usando System.Diagnostics.Process. Essa abordagem permite abrir PDFs no aplicativo de PDF preferido do usuário, enquanto o IronPDF continua sendo usado para gerar, manipular ou preparar os documentos PDF previamente.

Que funcionalidades adicionais estão disponíveis em PDF além da simples visualização?

IronPDF oferece uma ampla gama de funcionalidades PDF, incluindo assinaturas digitais para segurança de documentos, capacidades de preenchimento de formulários para PDFs interativos, compressão de PDF para reduzir tamanhos de arquivo, conversão de HTML para PDF para geração de conteúdo dinâmico e salvamento/exportação de PDFs em vários formatos.

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
Pronto para começar?
Nuget Downloads 19,936,792 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.