Ir para o conteúdo do rodapé
USANDO O IRONPDF

Como Gerar PDF em .NET Core com IronPDF

Para gerar arquivos PDF no .NET Core, use o ChromePdfRenderer do IronPDF para converter strings HTML, páginas da web ou visualizações Razor em documentos PDF com apenas algumas linhas de código, preservando todo o estilo CSS e a funcionalidade JavaScript.

A criação de documentos PDF em aplicações .NET Core é um requisito comum na construção de aplicações web que precisam gerar faturas, relatórios e outros documentos comerciais. O IronPDF oferece uma biblioteca PDF completa que simplifica a geração de PDFs no ASP.NET Core por meio de seu mecanismo de renderização Chrome, fornecendo PDFs perfeitos em todos os aspectos. Neste guia, você explorará como lidar com várias tarefas de geração de PDF no ambiente .NET 10, desde conversões HTML simples até a geração de relatórios complexos usando instruções C# de nível superior.

Como o .NET Core gera arquivos PDF?

O IronPDF utiliza um mecanismo de renderização baseado no Chrome para converter conteúdo HTML em arquivos PDF. Essa abordagem significa que você pode usar seu conhecimento existente de HTML e CSS para criar PDFs sem precisar aprender APIs de PDF complexas e de baixo nível ou lidar com uma curva de aprendizado acentuada. A biblioteca lida com a conversão automática de páginas da web, oferecendo suporte à execução de JavaScript e layouts CSS responsivos.

A API da biblioteca permite gerar documentos PDF a partir de strings HTML, URLs ou arquivos HTML locais. Ao converter HTML para PDF, o IronPDF preserva layouts complexos, estilos CSS, execução de JavaScript e conteúdo web dinâmico. Isso a torna uma escolha prática para desenvolvedores .NET que precisam de recursos confiáveis ​​de conversão de PDF em seus aplicativos.

O processo de renderização utiliza a mesma tecnologia que alimenta o Google Chrome, garantindo que as conversões de HTML para PDF correspondam ao que os usuários veem nos navegadores modernos. Isso inclui suporte para recursos CSS3, fontes da web, gráficos SVG e sistemas de layout modernos como Flexbox e CSS Grid. Como o mecanismo de renderização é baseado no Chrome, o resultado é previsível e consistente em ambientes de desenvolvimento, teste e produção.

Como instalar o IronPDF em um projeto .NET 10?

Para começar, é necessário apenas uma instalação através do Gerenciador de Pacotes NuGet . Você tem duas opções, dependendo do seu fluxo de trabalho.

Opção 1: Console do Gerenciador de Pacotes no Visual Studio

Install-Package IronPdf
Install-Package IronPdf
SHELL

Opção 2: CLI .NET

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

Para obter instruções passo a passo da instalação, consulte o guia de instalação do NuGet .

Para implementações em Docker ou ambientes Linux, dependências de sistema adicionais podem ser necessárias. O IronPDF é compatível com macOS, Windows, Linux, Azure e AWS Lambda, o que o torna adaptável a diversos cenários de hospedagem. Após a instalação, adicione uma chave de licença de avaliação para desbloquear o conjunto completo de recursos durante o desenvolvimento. O período de teste é gratuito e não exige cartão de crédito, permitindo que você avalie a biblioteca completamente antes de adquirir uma licença comercial.

Como gerar um PDF a partir de uma string HTML?

A maneira mais direta de criar um PDF é convertendo conteúdo HTML. Segue um exemplo mínimo usando instruções de nível superior em C#:

using IronPdf;

// Instantiate the renderer
var renderer = new ChromePdfRenderer();

// Convert an HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>");

// Save to disk
pdf.SaveAs("hello.pdf");
using IronPdf;

// Instantiate the renderer
var renderer = new ChromePdfRenderer();

// Convert an HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>");

// Save to disk
pdf.SaveAs("hello.pdf");
Imports IronPdf

' Instantiate the renderer
Dim renderer As New ChromePdfRenderer()

' Convert an HTML string to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>")

' Save to disk
pdf.SaveAs("hello.pdf")
$vbLabelText   $csharpLabel

A classe ChromePdfRenderer lida com o processo de conversão. O objeto PdfDocument retornado fornece acesso a dados binários, contagem de páginas e opções de saída, como salvar em um arquivo ou em um fluxo de memória. Você também pode adicionar metadados, como título, autor e palavras-chave do assunto, ao arquivo de saída.

O renderizador suporta uma ampla gama de opções de renderização. Você pode configurar margens personalizadas, definir tamanhos de papel, controlar a orientação da página e ajustar as dimensões da área de visualização. Essas opções garantem que o PDF gerado atenda aos requisitos específicos de formatação para documentos profissionais.

Como criar uma fatura em PDF com formatação CSS?

Para um exemplo mais realista, veja como gerar um documento de fatura formatado com marcação HTML e CSS:

using IronPdf;

var html = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; font-size: 14px; }
        .invoice-header {
            background-color: #2c3e50;
            color: white;
            padding: 20px;
        }
        .invoice-details { margin: 20px 0; }
        table { width: 100%; border-collapse: collapse; }
        th, td {
            padding: 12px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        .total {
            font-size: 1.2em;
            font-weight: bold;
            text-align: right;
        }
    </style>
</head>
<body>
    <div class='invoice-header'>
        <h1>Invoice #2026-001</h1>
        <p>Date: February 28, 2026</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: Jane Smith</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$749.00</td>
            </tr>
        </table>
        <p class='total'>Total: $749.00</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();

// Apply custom margins
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
using IronPdf;

var html = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; font-size: 14px; }
        .invoice-header {
            background-color: #2c3e50;
            color: white;
            padding: 20px;
        }
        .invoice-details { margin: 20px 0; }
        table { width: 100%; border-collapse: collapse; }
        th, td {
            padding: 12px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        .total {
            font-size: 1.2em;
            font-weight: bold;
            text-align: right;
        }
    </style>
</head>
<body>
    <div class='invoice-header'>
        <h1>Invoice #2026-001</h1>
        <p>Date: February 28, 2026</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: Jane Smith</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$749.00</td>
            </tr>
        </table>
        <p class='total'>Total: $749.00</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();

// Apply custom margins
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
Imports IronPdf

Dim html As String = "
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; font-size: 14px; }
        .invoice-header {
            background-color: #2c3e50;
            color: white;
            padding: 20px;
        }
        .invoice-details { margin: 20px 0; }
        table { width: 100%; border-collapse: collapse; }
        th, td {
            padding: 12px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        .total {
            font-size: 1.2em;
            font-weight: bold;
            text-align: right;
        }
    </style>
</head>
<body>
    <div class='invoice-header'>
        <h1>Invoice #2026-001</h1>
        <p>Date: February 28, 2026</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: Jane Smith</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$749.00</td>
            </tr>
        </table>
        <p class='total'>Total: $749.00</p>
    </div>
</body>
</html>"

Dim renderer As New ChromePdfRenderer()

' Apply custom margins
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10

Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")
$vbLabelText   $csharpLabel

Este exemplo demonstra a capacidade do IronPDF de lidar com layouts complexos com estilos CSS, incluindo configurações de família de fontes, cores de fundo e formatação de tabelas. A biblioteca processa a marcação HTML e gera um PDF que corresponde à aparência visual do documento original.

Para uma tipografia aprimorada, o IronPDF é compatível com o Google Fonts e fontes de ícones da web, permitindo que você crie PDFs visualmente refinados. A biblioteca também lida com designs de documentos em camadas. Você pode adicionar marcas d'água personalizadas ou inserir conteúdo em PDFs existentes.

Qual é a aparência da fatura em PDF gerada?

Fatura em PDF exibindo a Fatura nº 2026-001, datada de 28 de fevereiro de 2026, mostrando a compra de uma Licença Profissional no valor de US$ 749,00 com uma seção de cabeçalho azul escuro. A fatura demonstra a preservação do estilo CSS, incluindo fontes personalizadas, cores e formatação de tabela geradas a partir da conversão de HTML para PDF.

Como converter um URL de página da web em PDF?

O IronPDF pode gerar PDFs a partir de páginas web em tempo real, passando um URL para o renderizador. Isso é útil quando você precisa capturar conteúdo da web dinamicamente ou arquivar uma página pública:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1500); // Allow dynamic content to load

// Render the URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");

// Save to disk
pdf.SaveAs("webpage.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1500); // Allow dynamic content to load

// Render the URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");

// Save to disk
pdf.SaveAs("webpage.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Configure viewport and JavaScript settings
renderer.RenderingOptions.ViewPortWidth = 1920
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
renderer.RenderingOptions.WaitFor.RenderDelay(1500) ' Allow dynamic content to load

' Render the URL to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")

' Save to disk
pdf.SaveAs("webpage.pdf")
$vbLabelText   $csharpLabel

A configuração RenderDelay garante que o conteúdo baseado em JavaScript (gráficos, imagens carregadas sob demanda, tabelas dinâmicas) termine de ser renderizado antes da captura do PDF. Você também pode configurar as condições WaitFor para aguardar a conclusão de elementos DOM específicos ou solicitações de rede. Para páginas protegidas por autenticação, a biblioteca oferece suporte a cabeçalhos de requisição HTTP e cookies personalizados.

Para aplicações complexas de página única construídas com Angular ou React, condições de espera adicionais ajudam a garantir que toda a renderização do lado do cliente seja concluída antes que a captura do instantâneo do PDF seja feita.

![Comparação em tela dividida mostrando uma página da web renderizada em um navegador à esquerda e sua conversão para PDF à direita usando o IronPDF no .NET Core.] A versão em PDF mantém toda a formatação, imagens e estrutura de layout, demonstrando uma conversão de HTML para PDF de alta fidelidade.](/static-assets/pdf/blog/dotnet-core-generate-pdf/dotnet-core-generate-pdf-2.webp)

Como integrar a geração de PDF em um controlador ASP.NET Core ?

Gerar PDFs dentro de uma API Web ASP.NET Core é simples. O exemplo a seguir mostra uma ação de controlador que gera um relatório HTML e o retorna como um arquivo para download:

using Microsoft.AspNetCore.Mvc;
using IronPdf;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate-report")]
    public IActionResult GenerateReport()
    {
        var html = @"
            <h1>Monthly Sales Report</h1>
            <p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
            <table>
                <tr><th>Product</th><th>Sales</th></tr>
                <tr><td>Product A</td><td>$5,000</td></tr>
                <tr><td>Product B</td><td>$3,500</td></tr>
            </table>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);

        // Return the PDF bytes as a downloadable file
        return File(pdf.BinaryData, "application/pdf", "monthly-report.pdf");
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate-report")]
    public IActionResult GenerateReport()
    {
        var html = @"
            <h1>Monthly Sales Report</h1>
            <p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
            <table>
                <tr><th>Product</th><th>Sales</th></tr>
                <tr><td>Product A</td><td>$5,000</td></tr>
                <tr><td>Product B</td><td>$3,500</td></tr>
            </table>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);

        // Return the PDF bytes as a downloadable file
        return File(pdf.BinaryData, "application/pdf", "monthly-report.pdf");
    }
}
Imports Microsoft.AspNetCore.Mvc
Imports IronPdf

<ApiController>
<Route("api/[controller]")>
Public Class PdfController
    Inherits ControllerBase

    <HttpGet("generate-report")>
    Public Function GenerateReport() As IActionResult
        Dim html As String = "
            <h1>Monthly Sales Report</h1>
            <p>Generated on: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
            <table>
                <tr><th>Product</th><th>Sales</th></tr>
                <tr><td>Product A</td><td>$5,000</td></tr>
                <tr><td>Product B</td><td>$3,500</td></tr>
            </table>"

        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(html)

        ' Return the PDF bytes as a downloadable file
        Return File(pdf.BinaryData, "application/pdf", "monthly-report.pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

O tipo de retorno File() informa ao ASP.NET Core para transmitir os bytes brutos do PDF para o navegador do cliente com o tipo MIME correto. O cliente recebe um PDF para download sem nenhum arquivo intermediário no disco. Você pode adicionar cabeçalhos e rodapés a cada página ou aplicar marcas d'água a documentos rascunho ou confidenciais.

Para aplicações de produção, considere usar a geração assíncrona de PDFs para manter o fluxo de requisições não bloqueante, especialmente ao gerar documentos grandes ou complexos.

Como renderizar uma Razor View em PDF no MVC?

Para aplicações MVC, você pode renderizar uma view Razor em uma string HTML e, em seguida, convertê-la em PDF. Este padrão mantém seus modelos de documento dentro de arquivos padrão .cshtml:

[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
    // Fetch invoice data from the database
    var model = await GetInvoiceData(id);

    // Render the Razor view to an HTML string
    var html = await RenderViewToString("Invoice", model);

    // Convert the rendered HTML para PDF
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);

    // Return the file to the browser
    return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
    // Fetch invoice data from the database
    var model = await GetInvoiceData(id);

    // Render the Razor view to an HTML string
    var html = await RenderViewToString("Invoice", model);

    // Convert the rendered HTML para PDF
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);

    // Return the file to the browser
    return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
<AttributeUsage(AttributeTargets.Method)>
Public Class HttpGetAttribute
    Inherits Attribute
End Class

<HttpGet>
Public Async Function DownloadInvoice(id As Integer) As Task(Of IActionResult)
    ' Fetch invoice data from the database
    Dim model = Await GetInvoiceData(id)

    ' Render the Razor view to an HTML string
    Dim html = Await RenderViewToString("Invoice", model)

    ' Convert the rendered HTML to PDF
    Dim renderer = New ChromePdfRenderer()
    Dim pdf = renderer.RenderHtmlAsPdf(html)

    ' Return the file to the browser
    Return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf")
End Function
$vbLabelText   $csharpLabel

Essa abordagem permite que você mantenha seus modelos de fatura ou relatório como visualizações Razor comuns, usando vinculação de modelo e visualizações parciais. O método auxiliar RenderViewToString (uma utilidade comum em projetos MVC) converte a visualização em uma string HTML simples que o IronPDF então processa. Para projetos Razor Pages ou Blazor Server, aplicam-se padrões semelhantes.

Visualizador de PDF exibindo um Relatório de Vendas Mensal com os valores de vendas do Produto A (US$ 5.000) e do Produto B (US$ 3.500). O relatório demonstra formatação de tabela limpa e layout profissional gerados a partir de uma ação de controlador ASP.NET Core .

Quais recursos avançados de PDF o IronPDF suporta?

Além da conversão básica de HTML para PDF, o IronPDF oferece um amplo conjunto de recursos de manipulação de documentos:

Para cargas de trabalho com requisitos de desempenho críticos, o IronPDF oferece métodos assíncronos e suporte a multithreading. A biblioteca também realiza a conversão de imagens para PDF, a compressão de PDF e a linearização para uma visualização mais rápida na web.

Visão geral dos principais recursos do IronPDF
Recurso Descrição Caso de uso típico
HTML para PDF Converte strings HTML, arquivos ou URLs em PDF. Faturas, relatórios, arquivamento de páginas web
Razor para PDF Renderiza visualizações Razor (.cshtml) em PDF. Aplicações MVC e Razor Pages
Mesclar/Dividir Combina ou divide documentos PDF Agrupamento de documentos, extração de páginas
Assinaturas digitais Aplica-se a assinaturas de certificado X.509 Documentos legais, fluxos de trabalho de contratos
Extração de texto Lê o conteúdo de texto de PDFs existentes. Indexação de pesquisa, migração de dados
Formulários em PDF Cria e preenche campos de formulário interativos. Coleta automatizada de dados
Cabeçalhos e rodapés Adiciona números de página, datas e texto personalizado. Formatação profissional de documentos

Como começar a usar o IronPDF no .NET 10?

O IronPDF simplifica a geração de PDFs no .NET Core . Seu mecanismo de renderização Chrome garante fidelidade precisa na criação de PDFs a partir de conteúdo HTML, enquanto o design da API elimina a complexidade típica associada à manipulação de PDFs. A biblioteca fornece documentação completa para todos os recursos e oferece suporte à implantação em Windows, Linux, macOS, Azure Functions, AWS Lambda e contêineres Docker.

Seja para criar faturas, relatórios ou ferramentas de gerenciamento de documentos, o IronPDF oferece as ferramentas necessárias para a criação profissional de PDFs. Consulte a lista completa de recursos para entender o escopo total das capacidades da biblioteca ou verifique as opções de licenciamento adequadas para desenvolvedores individuais e equipes corporativas.

Inicie hoje mesmo um teste gratuito para experimentar o IronPDF no seu próprio projeto .NET 10. A licença de avaliação abrange o conjunto completo de recursos, permitindo que você avalie a geração, mesclagem, assinatura, preenchimento de formulários e extração de texto em PDF antes de adquirir uma licença definitiva.

Para obter contexto adicional, explore a página inicial da documentação do IronPDF para referências de API, guias de plataforma e exemplos de código que abrangem cenários comuns de PDF em .NET .


Referências externas:

Perguntas frequentes

Como posso gerar documentos PDF no .NET Core?

Você pode gerar documentos PDF no .NET Core usando o IronPDF, que permite criar PDFs a partir de HTML, URLs e views Razor utilizando seu mecanismo de renderização Chrome avançado.

Quais são as vantagens de usar o IronPDF para geração de PDFs?

O IronPDF oferece diversas vantagens, incluindo facilidade de integração, suporte para renderização com perfeição de pixels e a capacidade de criar PDFs a partir de várias fontes, como HTML e URLs, tornando-o ideal para a criação de aplicativos web que exigem a geração de PDFs.

O IronPDF consegue lidar com tarefas complexas de geração de PDFs?

Sim, o IronPDF foi projetado para lidar com tarefas complexas de geração de PDFs no ambiente .NET, fornecendo aos desenvolvedores as ferramentas necessárias para criar documentos PDF detalhados e precisos.

Qual é o papel do mecanismo de renderização Chrome no IronPDF?

O mecanismo de renderização Chrome no IronPDF garante que os PDFs gerados sejam perfeitos em termos de pixels, mantendo a fidelidade do conteúdo HTML ou da web original.

O IronPDF é adequado para gerar documentos comerciais como faturas e relatórios?

Sem dúvida, o IronPDF é ideal para gerar documentos comerciais, como faturas e relatórios, oferecendo renderização precisa e suporte para diversos formatos de documento.

Que tipos de entrada o IronPDF pode converter em PDF?

O IronPDF pode converter entradas como HTML, URLs e visualizações Razor em documentos PDF, proporcionando flexibilidade na criação de conteúdo.

O IronPDF é compatível com aplicações ASP.NET Core?

Sim, o IronPDF é totalmente compatível com aplicações ASP.NET Core, permitindo que os desenvolvedores integrem facilmente recursos de geração de PDF em seus projetos web.

Quais são alguns casos de uso comuns do IronPDF em aplicações web?

Os casos de uso mais comuns do IronPDF incluem a geração de PDFs para faturas, relatórios e quaisquer outros documentos comerciais exigidos por aplicativos da web.

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