IRONSOFTWAREHOME
USANDO O IRONPDF

Como converter PDF para TIFF em VB .NET com IronPDF

Curtis Chau
Curtis Chau
Updated: 1 de março de 2026

O IronPDF permite que desenvolvedores ASP.NET gerem e exibam arquivos PDF diretamente em abas do navegador, configurando corretamente os cabeçalhos Content-Disposition como "inline" em vez de "attachment", eliminando downloads indesejados e proporcionando uma experiência de visualização de PDF confiável.

Que problema este tutorial resolve?

Abrir arquivos PDF em uma nova janela ou aba do navegador é uma solicitação comum em aplicações web ASP.NET . Os desenvolvedores frequentemente enfrentam dificuldades com documentos PDF que são baixados automaticamente em vez de serem exibidos no navegador quando os usuários clicam em um link. Esse comportamento frustrante prejudica a experiência do usuário, especialmente ao visualizar relatórios, faturas ou documentos que ele precisa consultar enquanto continua trabalhando na página atual.

O IronPDF oferece uma solução eficaz para esse desafio, fornecendo recursos poderosos de geração e exibição de PDFs que se integram de forma confiável com aplicativos ASP.NET . Em vez de lidar manualmente com cabeçalhos de resposta e configurações de Content-Disposition, os desenvolvedores podem usar o ChromePdfRenderer do IronPDF para criar e disponibilizar arquivos PDF que abrem de forma consistente em novas abas do navegador.

Por que você deveria se preocupar com problemas de exibição de PDFs?

Ao disponibilizar arquivos PDF por meio do ASP.NET, o comportamento padrão geralmente resulta em downloads em vez de exibição no navegador. Isso acontece devido à forma como o servidor envia o arquivo para o navegador por meio dos cabeçalhos de resposta HTTP . O cabeçalho Content-Disposition controla se um arquivo PDF é aberto diretamente no arquivo ou se é baixado.

O código ASP.NET tradicional utilizando Response.BinaryWrite com um array de bytes frequentemente define cabeçalhos que acionam downloads. Mesmo quando os desenvolvedores definem Response.ContentType = "application/pdf", valores Content-Disposition ausentes ou incorretos fazem com que o navegador faça o download em vez de exibir o documento PDF. Diferentes navegadores também lidam com arquivos PDF de forma inconsistente — enquanto alguns navegadores de desktop podem exibir os arquivos diretamente na página por padrão, os navegadores móveis geralmente optam por baixá-los.

Quando esses problemas ocorrem com mais frequência?

A configuração do lado do servidor torna-se mais complexa ao trabalhar com documentos PDF gerados dinamicamente a partir de strings HTML ou fontes de banco de dados. Sem o caminho correto e os cabeçalhos adequados, obter uma exibição consistente em diferentes navegadores é um verdadeiro desafio. Muitos desenvolvedores recorrem ao Stack Overflow em busca de soluções para esse problema persistente. A entrada do MDN Web Docs sobre Content-Disposition é a referência definitiva para entender a sintaxe exata e o comportamento do navegador para valores embutidos e anexos.

Como o IronPDF simplifica a visualização de PDFs?

O IronPDF transforma a tarefa de geração e exibição de PDFs em código simples. Utilizando seu mecanismo de renderização baseado no Chrome , o IronPDF gera documentos PDF com qualidade de imagem perfeita a partir de conteúdo HTML, lidando automaticamente com os detalhes técnicos que frequentemente confundem os desenvolvedores.

O que torna a abordagem da IronPDF diferente?

A classe ChromePdfRenderer da biblioteca fornece uma abordagem moderna para criação de PDFs. Em vez de gerenciar manualmente arrays de bytes e fluxos de resposta, os desenvolvedores podem gerar PDFs a partir de strings HTML , arquivos HTML ou URLs com chamadas de método simples. O IronPDF gerencia o processo de renderização internamente, garantindo resultados consistentes em diferentes ambientes.

Quais funcionalidades são mais úteis?

Além da geração básica, o IronPDF oferece amplas opções de renderização para personalizar a saída, incluindo tamanho do papel, margens e atrasos na execução do JavaScript . Essa flexibilidade o torna adequado para criar desde documentos simples até relatórios complexos com gráficos e conteúdo dinâmico.

O mecanismo de renderização também suporta cabeçalhos e rodapés personalizados, marcas d'água e numeração de páginas — tudo configurado por meio de um objeto de opções simples antes de chamar o método de renderização. Para desenvolvedores que precisam seguir um guia de estilo de marca existente, esse nível de controle sobre o formato de saída é uma vantagem significativa em relação à criação manual de dados binários em PDF.

Como instalar o IronPDF?

Instale o IronPDF através do Gerenciador de Pacotes NuGet para começar:

PM > Install-Package IronPdf

Este único comando adiciona o IronPDF e todas as suas dependências ao projeto. Uma vez instalado, o namespace IronPdf fica disponível em toda a aplicação, dando acesso a ChromePdfRenderer, PdfDocument, e todas as classes relacionadas.

Como gerar e abrir arquivos PDF com o IronPDF?

Aqui está um exemplo completo para ASP.NET Core que gera um arquivo PDF e o disponibiliza para ser aberto em uma aba do navegador:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

[Route("[controller]")]
public class PdfController : Controller
{
    [HttpGet("GeneratePdf")]
    public IActionResult GeneratePdf()
    {
        // Create a new ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();

        // Generate PDF from HTML string -- supports CSS and JavaScript
        string htmlContent = $@"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <p>This PDF opens in a new browser tab.</p>
                    <p>Generated on: {DateTime.Now}</p>
                </body>
            </html>";

        // Render HTML to a PDF document
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);

        // Get the binary data for streaming
        byte[] pdfBytes = pdf.BinaryData;

        // Set inline display -- this is the key header for browser display
        Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf");
        Response.Headers.Append("Content-Length", pdfBytes.Length.ToString());

        return File(pdfBytes, "application/pdf");
    }
}

Qual é a aparência do PDF gerado?

Visualizador de PDF exibindo um documento PDF de amostra com o título 'Documento PDF de Amostra' e carimbo de data/hora de geração de 20/11/2025 15:37:54 - demonstrando a geração bem-sucedida de PDF e exibição no navegador

O código acima usa [HttpGet]. Ao criar um PDF após um usuário enviar um formulário, use o atributo [HttpPost] em vez disso. Essa distinção é importante: as solicitações GET devem ser idempotentes, enquanto as solicitações POST transportam os dados do formulário enviado, usados ​​para gerar o documento personalizado.

Observe que Response.Headers.Append é usado em vez de Response.Headers.Add. No ASP.NET Core, o método Append é a API preferida para adicionar cabeçalhos de resposta porque não gera exceção se o cabeçalho já existir. Usar Add pode causar exceções em pipelines de middleware onde os cabeçalhos já podem ter sido parcialmente configurados.

Por que o cabeçalho Content-Disposition é importante?

O detalhe crítico para abrir arquivos PDF no navegador é definir o cabeçalho Content-Disposition como "inline" em vez de "attachment". O valor "attachment" indica ao navegador para baixar o arquivo e salvá-lo no disco. Definindo-o para "inline" instrui o navegador a tentar exibir o arquivo dentro da janela do navegador -- algo que os navegadores modernos que suportam renderização nativa de PDF farão automaticamente.

Como implementar isso em WebForms?

Para aplicações WebForms, você pode disponibilizar o PDF diretamente através da resposta HTTP e acionar a exibição no navegador a partir de um evento de clique de botão:

using IronPdf;

protected void OpenPdf_Click(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();

    // Generate PDF from HTML content
    var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice</h1><p>Your order details</p>");

    // Get byte array from the PDF document
    byte[] data = pdf.BinaryData;

    // Clear any existing response output
    Response.Clear();
    Response.ContentType = "application/pdf";
    Response.AddHeader("Content-Length", data.Length.ToString());
    Response.AddHeader("Content-Disposition", "inline; filename=invoice.pdf");
    Response.BinaryWrite(data);
    Response.End();
}

Se você também precisar criar formulários em PDF ou adicionar assinaturas digitais , o IronPDF oferece suporte integrado para esses dois recursos avançados.

Quais opções de controle de abas do navegador estão disponíveis?

Embora o código do lado do servidor determine se um PDF será exibido em linha, controlar se ele será aberto na mesma aba ou em uma nova aba requer HTML ou JavaScript do lado do cliente. O atributo target nas tags âncora do HTML fornece a abordagem mais simples:

<a href="/Pdf/GeneratePdf" target="_blank">View PDF</a>
HTML

Como o PDF é exibido em uma nova aba?

Um navegador web exibindo um documento PDF gerado com o título 'Documento PDF de Amostra' e carimbo de data/hora em uma nova aba do navegador em localhost:7068/Pdf/GeneratePdf

Quando você deve usar JavaScript para ter mais controle?

Para cenários onde a URL é determinada dinamicamente, a função window.open do JavaScript dá controle preciso sobre quando e como a aba do PDF é aberta:

function openPdfInNewTab() {
    // Open the PDF endpoint in a new browser tab
    window.open('/Pdf/GeneratePdf', '_blank');
    return false; // Prevent default link or form submission behavior
}
JavaScript

Como combinar JavaScript com controles ASP.NET ?

Em aplicações ASP.NET WebForms, anexe a chamada do JavaScript diretamente a um controle de botão usando o atributo OnClientClick:

<asp:Button ID="btnViewPdf" runat="server"
            OnClientClick="window.open('/Pdf/GeneratePdf', '_blank'); return false;"
            Text="Open PDF in New Tab" />

Ao usar window.open(), o segundo argumento '_blank' é o parâmetro alvo que abre o documento em uma nova janela ou aba separada. Isso espelha o comportamento de target="_blank" em uma tag âncora HTML padrão.

E quanto a incorporar PDFs diretamente na página?

A tag HTML <object> fornece outra opção para incorporar documentos PDF diretamente na página atual, útil quando os usuários precisam ler o documento junto com outros conteúdos:

<object data="/Pdf/GeneratePdf" type="application/pdf" width="100%" height="600px">
    <embed src="/Pdf/GeneratePdf" type="application/pdf" />
    <p>Your browser does not support embedded PDF documents.
       <a href="/Pdf/GeneratePdf" target="_blank">View the PDF file</a>
    </p>
</object>
HTML

Qual a aparência de um PDF incorporado?

Visualizador de PDF incorporado exibindo um documento PDF de amostra dentro de uma página web, mostrando o título do documento, descrição e carimbo de data de geração com controles padrão do visualizador de PDF

Essa abordagem funciona bem em navegadores modernos que oferecem suporte à renderização nativa de PDFs. De acordo com a documentação do ASP.NET Core da Microsoft , cabeçalhos HTTP adequados, combinados com código do lado do cliente, fornecem a solução mais confiável e compatível com diversos navegadores. Observe que o atributo target="_blank" é essencial no link de fallback.

Como lidar com diferentes fontes de arquivos PDF?

O IronPDF processa diversas fontes de entrada além de strings HTML. Ao trabalhar com arquivos PDF existentes ou gerar documentos a partir de diferentes formatos de dados, a biblioteca oferece opções flexíveis para disponibilizar conteúdo PDF aos usuários.

Em aplicações do mundo real, raramente todos os PDFs são gerados do zero. Os relatórios podem ser armazenados como arquivos PDF em uma unidade compartilhada, os contratos assinados podem ficar armazenados em um contêiner de armazenamento de blobs e as faturas arquivadas geralmente são recuperadas como matrizes de bytes de um banco de dados relacional. A mesma estratégia de cabeçalho Content-Disposition se aplica nos três casos — a principal diferença está em como os bytes são obtidos antes de serem gravados na resposta.

Como carregar arquivos PDF existentes?

Para carregar documentos PDF existentes do disco e exibi-los diretamente no dispositivo:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

[Route("[controller]")]
public class PdfController : Controller
{
    private readonly IWebHostEnvironment _env;

    public PdfController(IWebHostEnvironment env) => _env = env;

    [HttpGet("ViewFile")]
    public IActionResult ViewFile(string fileName)
    {
        // Build the full path to the PDF on disk
        string path = Path.Combine(_env.WebRootPath, "pdfs", fileName);

        // Load the existing PDF document
        var pdf = PdfDocument.FromFile(path);

        // Read the binary content from the PDF stream
        byte[] bytes = pdf.Stream.ToArray();

        // Serve inline so the browser displays it directly
        Response.Headers.Append("Content-Disposition", $"inline; filename={fileName}");
        Response.Headers.Append("Content-Length", bytes.Length.ToString());

        return File(bytes, "application/pdf");
    }
}

Como é a aparência ao abrir um PDF existente?

Visualizador de PDF exibindo um documento intitulado 'O que é um PDF?' com texto explicativo sobre a história e capacidades do formato PDF em uma janela do navegador

Como trabalhar com PDFs provenientes de bancos de dados?

Trabalhar com arrays de bytes recuperados de um banco de dados exige um manuseio cuidadoso para carregar o documento corretamente antes de exibi-lo:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

[Route("[controller]")]
public class PdfController : Controller
{
    [HttpGet("DisplayFromDatabase/{documentId:int}")]
    public IActionResult DisplayFromDatabase(int documentId)
    {
        // Retrieve the stored byte array from the database
        byte[] pdfData = GetPdfFromDatabase(documentId);

        // Load into an IronPDF document object for optional manipulation
        var pdf = PdfDocument.FromBytes(pdfData);

        // Set response headers for inline browser display
        Response.Headers.Append(
            "Content-Disposition",
            $"inline; filename=document_{documentId}.pdf");
        Response.Headers.Append("Content-Length", pdfData.Length.ToString());

        return File(pdfData, "application/pdf");
    }

    private static byte[] GetPdfFromDatabase(int documentId)
    {
        // Replace with actual database retrieval logic
        return Array.Empty<byte>();
    }
}

Quais opções de renderização você pode personalizar?

O IronPDF oferece suporte à conversão avançada de HTML para PDF, incluindo estilização CSS, imagens e fontes da web. A biblioteca também fornece guias de solução de problemas para alcançar resultados perfeitos em ambientes de produção.

A tabela abaixo resume as principais estratégias de serviço e quando usar cada uma delas:

Estratégias de exibição de PDFs em ASP.NET
EstratégiaValor do cabeçalhoComportamento da guiaIdeal para
Exibição em linhaContent-Disposition: inlineMesma abaPré-visualização rápida sem sair da página
Nova aba via HTMLContent-Disposition: inline + target="_blank"Nova abaO usuário lê o PDF juntamente com a página original.
Download do arquivoContent-Disposition: attachmentSolicitação de downloadSalvar relatórios ou faturas em disco
Objeto incorporadoContent-Disposition: inline + <object>Incorporado na páginaExibir PDF junto com outros conteúdos.

Quais são os seus próximos passos?

Abrir um PDF em uma nova janela no ASP.NET C# torna-se simples com o IronPDF . Ao lidar com os detalhes da geração de PDFs e configurar corretamente os cabeçalhos HTTP, os desenvolvedores podem garantir uma exibição consistente em diferentes navegadores, mantendo um código limpo e de fácil manutenção. Seja trabalhando com strings HTML, documentos PDF existentes ou matrizes de bytes de bancos de dados, o IronPDF fornece as ferramentas necessárias para entregar conteúdo PDF exatamente como os usuários esperam.

Inicie hoje mesmo um teste gratuito do IronPDF para adicionar funcionalidades profissionais de PDF a qualquer aplicação ASP.NET . Para implantação em produção, explore as opções de licenciamento que incluem suporte prioritário e acesso ao conjunto completo de recursos para aplicativos web corporativos.

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 bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.