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
Opção 2: CLI .NET
dotnet add package IronPdf
dotnet add package IronPdf
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")
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")
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?

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

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:
- Mesclar e dividir : Combine vários PDFs ou extraia páginas específicas usando a API de mesclagem e divisão.
- Assinaturas digitais : Aplique assinaturas digitais baseadas em certificados para autenticação de documentos.
- Extração de texto : Extrair texto de documentos PDF para indexação de pesquisa ou processamento de dados.
- Formulários PDF : Crie e preencha formulários PDF programaticamente para fluxos de trabalho de documentos automatizados.
- Converter páginas PDF em imagens : Exporte páginas PDF como imagens para miniaturas ou pré-visualizações.
- Renderização de strings HTML : Controle preciso sobre as opções de conversão de strings HTML para PDF
- Segurança : A proteção por senha, a criptografia e os controles de permissão mantêm os documentos confidenciais em segurança.
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.
| 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.


