Gere relatórios em PDF em ASP.NET com C# ou VB
O IronPDF permite que desenvolvedores .NET gerem relatórios em PDF a partir de dados HTML, Crystal Reports, XML e SQL Server, renderizando o conteúdo HTML como documentos PDF. Esta biblioteca C# para converter PDF e editar PDF simplifica a criação de relatórios em aplicações ASP.NET com apenas algumas linhas de código, preservando toda a formatação e estilo.
Início rápido: Gere relatórios em PDF com o IronPDF
Comece a gerar relatórios em PDF usando o IronPDF com apenas algumas linhas de código. Este guia rápido permite que os desenvolvedores convertam instantaneamente conteúdo HTML em documentos PDF profissionais, preservando toda a formatação sem esforço. Siga o exemplo abaixo para ver como é simples transformar seus dados em um relatório PDF profissional.
-
Instale IronPDF com o Gerenciador de Pacotes NuGet
PM > Install-Package IronPdf -
Copie e execute este trecho de código.
// Instantiate ChromePdfRenderer for HTML to PDF conversion new IronPdf.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf"); -
Implante para testar em seu ambiente de produção.
Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita
Fluxo de trabalho mínimo (5 etapas)
- Baixe e instale a biblioteca IronPDF C# PDF Report.
- Gere relatórios como documentos HTML e renderize-os como PDFs.
- Exporte relatórios do Crystal Reports usando: Arquivo → Exportar → HTML 4.0
- Formate relatórios XML analisando o XML e gerando HTML com os dados.
- Assine digitalmente os PDFs para garantir que os relatórios não foram adulterados.
Passo 1
Como faço para instalar o IronPDF?
Install-Package IronPdf
Você também pode baixar o arquivo DLL do IronPDF manualmente . Para cenários de instalação avançados, consulte nosso guia completo de pacotes NuGet , que abrange a configuração para plataformas Azure, AWS, Linux, Mac e Windows. Se você trabalha com aplicações em contêineres, nosso guia de integração com o Docker fornece instruções detalhadas de configuração.
Tutorial de Como Fazer
Qual é a metodologia para criar um relatório em PDF?
Primeiro, gere o relatório como um documento HTML e, em seguida, renderize o HTML como um PDF usando o IronPDF. Este tutorial mostra os passos para criar um relatório em PDF em ASP.NET C#. O mecanismo de renderização Chrome do IronPDF garante uma conversão perfeita em pixels, ao mesmo tempo que oferece suporte às tecnologias modernas HTML5, CSS3 e JavaScript.
:path=/static-assets/pdf/content-code-examples/how-to/csharp-pdf-reports-render-html-file.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
renderer.RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf")
Para necessidades de relatórios mais complexas, explore nosso tutorial completo de criação de PDFs , que abrange marcas d'água, compressão, planos de fundo, cabeçalhos, rodapés, formulários e proteção por senha.
Como faço para converter relatórios do Crystal Reports para PDF com .NET?
Exporte relatórios do Crystal Reports para HTML usando:
Arquivo → Exportar → HTML 4.0
O relatório resultante pode então ser exportado como um PDF usando o código de exemplo em C# acima, na seção Metodologia. O IronPDF oferece excelente suporte para a conversão de arquivos HTML em PDF , mantendo toda a formatação e estilos da sua saída do Crystal Reports.
Eis um exemplo:
:path=/static-assets/pdf/content-code-examples/how-to/csharp-pdf-reports-render-header-footer.cs
using IronPdf;
using IronSoftware.Drawing;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Add a header to very page easily
renderer.RenderingOptions.FirstPageNumber = 1;
renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
renderer.RenderingOptions.TextHeader.CenterText = "{url}";
renderer.RenderingOptions.TextHeader.Font = FontTypes.Arial;
renderer.RenderingOptions.TextHeader.FontSize = 12;
// Add a footer too
renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
renderer.RenderingOptions.TextFooter.Font = FontTypes.Arial;
renderer.RenderingOptions.TextFooter.FontSize = 10;
renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
renderer.RenderHtmlFileAsPdf(@"c:\my\exported\report.html").SaveAs("report.pdf");
Imports IronPdf
Imports IronSoftware.Drawing
Private renderer As New ChromePdfRenderer()
' Add a header to very page easily
renderer.RenderingOptions.FirstPageNumber = 1
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.CenterText = "{url}"
renderer.RenderingOptions.TextHeader.Font = FontTypes.Arial
renderer.RenderingOptions.TextHeader.FontSize = 12
' Add a footer too
renderer.RenderingOptions.TextFooter.DrawDividerLine = True
renderer.RenderingOptions.TextFooter.Font = FontTypes.Arial
renderer.RenderingOptions.TextFooter.FontSize = 10
renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
renderer.RenderHtmlFileAsPdf("c:\my\exported\report.html").SaveAs("report.pdf")
Para personalização avançada de cabeçalhos e rodapés, incluindo cabeçalhos baseados em HTML, visite nosso guia de cabeçalhos e rodapés .
Como posso converter relatórios do Crystal Reports para PDF programaticamente?
Se você deseja trabalhar programaticamente para criar um PDF a partir de um arquivo Crystal Reports (RPT), isso também é possível e lhe dá muito mais controle. Essa abordagem se integra perfeitamente às opções de renderização do IronPDF, permitindo personalização completa.
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
using IronPdf;
public static void ExportRptToPdf(string rptPath, string pdfOutputPath)
{
// Load the Crystal Report
ReportDocument rpt = new ReportDocument();
rpt.Load(rptPath);
// Configure export options for HTML output
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions()
{
DiskFileName = @"c:\tmp\html\b.html" // Temporary HTML file
};
ExportOptions exportOpts = ExportOptions.CreateExportOptions();
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
exportOpts.ExportFormatType = ExportFormatType.HTML40; // Export as HTML 4.0
exportOpts.ExportDestinationOptions = diskOpts;
// Export report to HTML
rpt.Export();
// Convert HTML to PDF using IronPDF
var Renderer = new ChromePdfRenderer();
// Add dynamic header with URL
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
// Add footer with timestamp and page numbers
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
// Render the HTML file to PDF and save
Renderer.RenderFileAsPdf(diskOpts.DiskFileName).SaveAs(pdfOutputPath);
Console.WriteLine("Report Written To {0}", Path.GetFullPath(pdfOutputPath));
}
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
using IronPdf;
public static void ExportRptToPdf(string rptPath, string pdfOutputPath)
{
// Load the Crystal Report
ReportDocument rpt = new ReportDocument();
rpt.Load(rptPath);
// Configure export options for HTML output
DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions()
{
DiskFileName = @"c:\tmp\html\b.html" // Temporary HTML file
};
ExportOptions exportOpts = ExportOptions.CreateExportOptions();
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
exportOpts.ExportFormatType = ExportFormatType.HTML40; // Export as HTML 4.0
exportOpts.ExportDestinationOptions = diskOpts;
// Export report to HTML
rpt.Export();
// Convert HTML to PDF using IronPDF
var Renderer = new ChromePdfRenderer();
// Add dynamic header with URL
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
// Add footer with timestamp and page numbers
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
// Render the HTML file to PDF and save
Renderer.RenderFileAsPdf(diskOpts.DiskFileName).SaveAs(pdfOutputPath);
Console.WriteLine("Report Written To {0}", Path.GetFullPath(pdfOutputPath));
}
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.IO
Imports IronPdf
Public Sub ExportRptToPdf(rptPath As String, pdfOutputPath As String)
' Load the Crystal Report
Dim rpt As New ReportDocument()
rpt.Load(rptPath)
' Configure export options for HTML output
Dim diskOpts As New DiskFileDestinationOptions() With {
.DiskFileName = "c:\tmp\html\b.html" ' Temporary HTML file
}
Dim exportOpts As ExportOptions = ExportOptions.CreateExportOptions()
exportOpts.ExportDestinationType = ExportDestinationType.DiskFile
exportOpts.ExportFormatType = ExportFormatType.HTML40 ' Export as HTML 4.0
exportOpts.ExportDestinationOptions = diskOpts
' Export report to HTML
rpt.Export()
' Convert HTML to PDF using IronPDF
Dim Renderer As New ChromePdfRenderer()
' Add dynamic header with URL
Renderer.RenderingOptions.TextHeader.CenterText = "{url}"
' Add footer with timestamp and page numbers
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
' Render the HTML file to PDF and save
Renderer.RenderFileAsPdf(diskOpts.DiskFileName).SaveAs(pdfOutputPath)
Console.WriteLine("Report Written To {0}", Path.GetFullPath(pdfOutputPath))
End Sub
Como faço para gerar relatórios em PDF a partir de XML?
A exportação de dados de relatórios em formato XML ainda é comum, apesar da prevalência de formatos mais fáceis de codificar, como o JSON. O IronPDF oferece excelente suporte para conversão de XML para PDF , fornecendo múltiplas abordagens para lidar com dados XML.
Para formatar relatórios XML, analise o XML e gere HTML com os dados.
Uma solução mais elegante é usar XSLT para converter XML diretamente em HTML usando a classe XslCompiledTransform, conforme documentado no artigo " Usando a classe XslCompiledTransform" .
A string ou arquivo HTML resultante pode então ser renderizado como um PDF usando o IronPDF:
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;
public static void ConvertXmlToPdf(string xml, string xslt, string pdfOutputPath)
{
// Initialize XSLT transformation
XslCompiledTransform transform = new XslCompiledTransform();
using (XmlReader reader = XmlReader.Create(new StringReader(xslt)))
{
transform.Load(reader); // Load XSLT stylesheet
}
// Transform XML to HTML
StringWriter results = new StringWriter();
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
transform.Transform(reader, null, results); // Apply transformation
}
// Convert the generated HTML to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf(results.ToString()).SaveAs(pdfOutputPath);
}
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;
public static void ConvertXmlToPdf(string xml, string xslt, string pdfOutputPath)
{
// Initialize XSLT transformation
XslCompiledTransform transform = new XslCompiledTransform();
using (XmlReader reader = XmlReader.Create(new StringReader(xslt)))
{
transform.Load(reader); // Load XSLT stylesheet
}
// Transform XML to HTML
StringWriter results = new StringWriter();
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
transform.Transform(reader, null, results); // Apply transformation
}
// Convert the generated HTML to PDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf(results.ToString()).SaveAs(pdfOutputPath);
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports IronPdf
Public Shared Sub ConvertXmlToPdf(xml As String, xslt As String, pdfOutputPath As String)
' Initialize XSLT transformation
Dim transform As New XslCompiledTransform()
Using reader As XmlReader = XmlReader.Create(New StringReader(xslt))
transform.Load(reader) ' Load XSLT stylesheet
End Using
' Transform XML to HTML
Dim results As New StringWriter()
Using reader As XmlReader = XmlReader.Create(New StringReader(xml))
transform.Transform(reader, Nothing, results) ' Apply transformation
End Using
' Convert the generated HTML to PDF
Dim renderer As New ChromePdfRenderer()
renderer.RenderHtmlAsPdf(results.ToString()).SaveAs(pdfOutputPath)
End Sub
Consulte o artigo Converter XML para PDF em C# e VB .NET para saber mais sobre técnicas avançadas de transformação de XML e boas práticas.
Como faço para exportar relatórios do SQL Server para PDF?
O SQL Server da Microsoft e o SQL Server Express gratuito contêm ferramentas de geração de relatórios. Exportar relatórios do SSRS para PDF em ASP.NET pode ser um uso útil do IronPDF. Para necessidades complexas de visualização de dados, o IronPDF oferece suporte à renderização de gráficos JavaScript , incluindo bibliotecas populares como C3.js, D3.js e Highcharts.
Tutorial: Como localizar e iniciar as ferramentas do Reporting Services (SSRS)
Esses relatórios podem ser gerados em HTML, que pode então ser personalizado e convertido para o formato PDF usando o IronPDF. O recurso de conversão de string HTML para PDF do IronPDF oferece controle total sobre o resultado final.
Renderizar para HTML (Construtor de Relatórios)
Para ambientes corporativos que exigem acesso seguro a dados, o IronPDF oferece suporte a logins TLS em sites e sistemas para lidar com a geração de relatórios autenticados.
Como posso proteger relatórios em PDF?
Para garantir que um relatório em PDF não foi modificado ou adulterado, assine-o digitalmente. Isso é mais facilmente conseguido em um arquivo de relatório PDF depois que ele for renderizado e salvo no disco. O IronPDF oferece recursos abrangentes de assinatura de PDF , incluindo suporte para Módulos de Segurança de Hardware (HSM) .
:path=/static-assets/pdf/content-code-examples/how-to/csharp-pdf-reports-sign-pdf.cs
using IronPdf.Signing;
// Sign our PDF Report using a p12 or pix digital certificate file
new PdfSignature("IronSoftware.pfx", "123456").SignPdfFile("signed.pdf");
Imports IronPdf.Signing
' Sign our PDF Report using a p12 or pix digital certificate file
Call (New PdfSignature("IronSoftware.pfx", "123456")).SignPdfFile("signed.pdf")
Se você não possui uma assinatura digital, pode criar um novo arquivo de assinatura digital usando o Adobe Acrobat Reader gratuito no macOS e no Windows. Para medidas de segurança adicionais, consulte nosso guia de permissões e senhas para PDFs para controlar o acesso e os direitos de edição de documentos.
Como converter um arquivo ASPX para PDF usando ASP.NET Webforms?
A maneira mais fácil de servir conteúdo HTML em ASP.NET é usar a classe IronPdf.AspxToPdf no evento Form_Load de um aplicativo ASP.NET WebForms. Este poderoso recurso permite converter páginas ASPX inteiras, incluindo controles do lado do servidor e conteúdo dinâmico, diretamente para PDF.
using IronPdf;
public static void RenderAspxToPdf()
{
// Configure PDF rendering options
var AspxToPdfOptions = new ChromePdfRenderOptions()
{
EnableJavaScript = false, // Disable JavaScript for simpler reports
PrintHtmlBackgrounds = true, // Include background colors and images
MarginTop = 20, // Set top margin in mm
MarginBottom = 20, // Set bottom margin in mm
PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait,
PaperSize = IronPdf.Rendering.PdfPaperSize.A4
// ...many more options available
};
// Render the HTML page to PDF and prompt download
<code>AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Report.pdf", AspxToPdfOptions)</code>;
}
using IronPdf;
public static void RenderAspxToPdf()
{
// Configure PDF rendering options
var AspxToPdfOptions = new ChromePdfRenderOptions()
{
EnableJavaScript = false, // Disable JavaScript for simpler reports
PrintHtmlBackgrounds = true, // Include background colors and images
MarginTop = 20, // Set top margin in mm
MarginBottom = 20, // Set bottom margin in mm
PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait,
PaperSize = IronPdf.Rendering.PdfPaperSize.A4
// ...many more options available
};
// Render the HTML page to PDF and prompt download
<code>AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Report.pdf", AspxToPdfOptions)</code>;
}
Imports IronPdf
Public Module PdfRenderer
Public Sub RenderAspxToPdf()
' Configure PDF rendering options
Dim AspxToPdfOptions As New ChromePdfRenderOptions() With {
.EnableJavaScript = False, ' Disable JavaScript for simpler reports
.PrintHtmlBackgrounds = True, ' Include background colors and images
.MarginTop = 20, ' Set top margin in mm
.MarginBottom = 20, ' Set bottom margin in mm
.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait,
.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
' ...many more options available
}
' Render the HTML page to PDF and prompt download
AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Report.pdf", AspxToPdfOptions)
End Sub
End Module
Esperamos que este artigo tenha ajudado você a aprender como gerar um relatório em PDF em ASP.NET C# ou VB .NET. Você também pode consultar nosso tutorial completo sobre ASP.NET ASPX para PDF para aprender mais sobre cenários avançados, incluindo configurações de conversão de páginas ASPX para PDF e como lidar com layouts complexos.
Perguntas frequentes
Como faço para gerar relatórios em PDF a partir de HTML em C#?
O IronPDF permite gerar relatórios em PDF a partir de HTML com apenas uma linha de código: `new IronPDF.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf").` Isso preserva toda a formatação e estilo HTML no documento PDF final.
Que tipos de relatórios podem ser convertidos para PDF?
O IronPDF suporta a conversão de diversos tipos de relatórios para PDF, incluindo relatórios HTML, relatórios Crystal Reports (exportados como HTML 4.0), relatórios XML (com estilo HTML) e relatórios de dados do SQL Server. A biblioteca utiliza um mecanismo de renderização do Chrome para garantir uma conversão perfeita em termos de pixels.
Como faço para instalar a biblioteca geradora de relatórios em PDF?
Você pode instalar o IronPDF através do Gerenciador de Pacotes NuGet usando o comando 'Install-Package IronPDF', ou baixar a DLL manualmente. A biblioteca é compatível com diversas plataformas, incluindo Azure, AWS, Linux, Mac, Windows e contêineres Docker.
Posso converter relatórios do Crystal Reports para PDF em .NET?
Sim, você pode converter relatórios do Crystal Reports para PDF usando o IronPDF. Primeiro, exporte o relatório do Crystal Reports para o formato HTML 4.0 (Arquivo → Exportar → HTML 4.0) e, em seguida, use o método RenderHtmlFileAsPdf do IronPDF para converter a saída HTML em um documento PDF.
Como faço para criar relatórios em PDF a partir de dados do SQL Server?
Para criar relatórios em PDF a partir de dados do SQL Server, primeiro gere um relatório HTML com seus dados e, em seguida, use o ChromePdfRenderer do IronPDF para converter o HTML em PDF. A biblioteca preserva toda a formatação, tornando-a ideal para relatórios baseados em banco de dados.
Posso assinar digitalmente relatórios em PDF?
Sim, o IronPDF permite assinar digitalmente relatórios em PDF para garantir que não foram adulterados. Esse recurso adiciona uma camada extra de segurança e autenticidade aos seus documentos PDF gerados.
A biblioteca oferece suporte aos padrões modernos da web?
O mecanismo de renderização Chrome do IronPDF oferece suporte completo a HTML5, CSS3 e JavaScript modernos, garantindo que seus relatórios sejam renderizados com precisão, preservando todos os estilos da web e elementos interativos contemporâneos na saída em PDF.

