Cómo crear un informe PDF en C# para .NET usando IronPDF

Generate PDF Reports in ASP.NET with C# or VB

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

Generating management or database reports from structured data such as SQL is a common .NET development task. IronPDF can be used as a PDF reader in C# and helps visualize and export SSIS reports to PDF in ASP.NET C#.

IronPDF can be used to render snapshots of data as "reports" in PDF file format. It also works as a PDF C# parser.

Quickstart: Generate PDF Reports with IronPDF

Get started with generating PDF reports using IronPDF in just a few lines of code. This quick guide enables developers to instantly convert HTML content into professional PDF documents, preserving all formatting effortlessly. Follow the example below to see how simple it is to transform your data into a polished PDF report.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. Copy and run this code snippet.

    new IronPdf.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf");
  3. Deploy to test on your live environment

    Start using IronPDF in your project today with a free trial
    arrow pointer

Step 1

1. Install IronPDF

Using NuGet: IronPdf on NuGet

Install-Package IronPdf

You can also download the IronPDF DLL manually.


How to Tutorial

2. Methodology for Creating a PDF Report

The basic methodology is to first generate the report as an HTML document and then render the HTML as a PDF using IronPDF. This tutorial will show you the steps to create a PDF report in ASP.NET C#.

: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")
$vbLabelText   $csharpLabel

3. Crystal Reports to PDF with .NET

In the Crystal Reports Application, you may export to HTML using:

File -> Export and select HTML 4.0

The resulting report can then be exported as a PDF using the above C# example code in the Methodology section.

Here's an example:

: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")
$vbLabelText   $csharpLabel

3.1 Crystal Reports to PDF Programmatically with C#

If you wish to work programmatically to create a PDF from a Crystal Reports (RPT) file, it's also possible and gives you much more control.

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
using IronPdf;

public static void ExportRptToPdf(string rptPath, string pdfOutputPath)
{
    ReportDocument rpt = new ReportDocument();
    rpt.Load(rptPath);

    // Set export options
    DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions()
    {
        DiskFileName = @"c:\tmp\html\b.html"
    };

    ExportOptions exportOpts = ExportOptions.CreateExportOptions();
    exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
    exportOpts.ExportFormatType = ExportFormatType.HTML40;
    exportOpts.ExportDestinationOptions = diskOpts;

    // Export report to HTML
    rpt.Export();

    // Convert HTML to PDF
    var Renderer = new ChromePdfRenderer();
    Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
    Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
    Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

    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)
{
    ReportDocument rpt = new ReportDocument();
    rpt.Load(rptPath);

    // Set export options
    DiskFileDestinationOptions diskOpts = new DiskFileDestinationOptions()
    {
        DiskFileName = @"c:\tmp\html\b.html"
    };

    ExportOptions exportOpts = ExportOptions.CreateExportOptions();
    exportOpts.ExportDestinationType = ExportDestinationType.DiskFile;
    exportOpts.ExportFormatType = ExportFormatType.HTML40;
    exportOpts.ExportDestinationOptions = diskOpts;

    // Export report to HTML
    rpt.Export();

    // Convert HTML to PDF
    var Renderer = new ChromePdfRenderer();
    Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
    Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
    Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

    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 Shared Sub ExportRptToPdf(ByVal rptPath As String, ByVal pdfOutputPath As String)
	Dim rpt As New ReportDocument()
	rpt.Load(rptPath)

	' Set export options
	Dim diskOpts As New DiskFileDestinationOptions() With {.DiskFileName = "c:\tmp\html\b.html"}

	Dim exportOpts As ExportOptions = ExportOptions.CreateExportOptions()
	exportOpts.ExportDestinationType = ExportDestinationType.DiskFile
	exportOpts.ExportFormatType = ExportFormatType.HTML40
	exportOpts.ExportDestinationOptions = diskOpts

	' Export report to HTML
	rpt.Export()

	' Convert HTML to PDF
	Dim Renderer = New ChromePdfRenderer()
	Renderer.RenderingOptions.TextHeader.CenterText = "{url}"
	Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
	Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"

	Renderer.RenderFileAsPdf(diskOpts.DiskFileName).SaveAs(pdfOutputPath)

	Console.WriteLine("Report Written To {0}", Path.GetFullPath(pdfOutputPath))
End Sub
$vbLabelText   $csharpLabel

4. XML Reports

Exporting report data as XML is still common despite the prevalence of easier to code formats such as JSON.

To style an XML report, the XML may be parsed, and HTML generated with the data.

A more elegant solution is to use XSLT to convert XML directly to HTML using the XslCompiledTransform class as documented in the article Using the XslCompiledTransform Class.

The resultant HTML string or file may then be rendered as a PDF using IronPDF:

using System.IO;
using System.Xml;
using System.Xml.Xsl;
using IronPdf;

public static void ConvertXmlToPdf(string xml, string xslt, string pdfOutputPath)
{
    XslCompiledTransform transform = new XslCompiledTransform();
    using (XmlReader reader = XmlReader.Create(new StringReader(xslt)))
    {
        transform.Load(reader);
    }

    StringWriter results = new StringWriter();
    using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
    {
        transform.Transform(reader, null, results);
    }

    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)
{
    XslCompiledTransform transform = new XslCompiledTransform();
    using (XmlReader reader = XmlReader.Create(new StringReader(xslt)))
    {
        transform.Load(reader);
    }

    StringWriter results = new StringWriter();
    using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
    {
        transform.Transform(reader, null, results);
    }

    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(ByVal xml As String, ByVal xslt As String, ByVal pdfOutputPath As String)
	Dim transform As New XslCompiledTransform()
	Using reader As XmlReader = XmlReader.Create(New StringReader(xslt))
		transform.Load(reader)
	End Using

	Dim results As New StringWriter()
	Using reader As XmlReader = XmlReader.Create(New StringReader(xml))
		transform.Transform(reader, Nothing, results)
	End Using

	Dim renderer As New ChromePdfRenderer()
	renderer.RenderHtmlAsPdf(results.ToString()).SaveAs(pdfOutputPath)
End Sub
$vbLabelText   $csharpLabel

Please visit the Convert XML to PDF in C# and VB.NET article to learn more.

5. Microsoft SQL Server Reports

Microsoft's SQL Server and the free SQL Server Express contain reporting tools. Exporting SSRS reports to a PDF in ASP.NET can be a useful use of IronPDF.

Tutorial: How to locate and start Reporting Services tools (SSRS)

These reports may be generated as HTML which may then be customized and converted to PDF format using IronPDF.

Render to HTML (Report Builder)

6. Report Security

To ensure a PDF report has not been modified or tampered with, it may be digitally signed. This is most easily achieved on a PDF report file after it has been rendered and saved to disk.

: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")
$vbLabelText   $csharpLabel

If you do not have a digital signature, you can create a new digital signature file using the free Adobe Acrobat Reader on macOS and Windows.

7. ASPX to PDF with ASP.NET Webforms

The easiest way to serve HTML content in ASP.NET is to use the IronPdf.AspxToPdf class on the Form_Load event of an ASP.NET WebForms application.

using IronPdf;

public static void RenderAspxToPdf()
{
    var AspxToPdfOptions = new ChromePdfRenderOptions()
    {
        EnableJavaScript = false, // Disable JavaScript for simplicity
        // ...many more options available
    };

    AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Report.pdf", AspxToPdfOptions);
}
using IronPdf;

public static void RenderAspxToPdf()
{
    var AspxToPdfOptions = new ChromePdfRenderOptions()
    {
        EnableJavaScript = false, // Disable JavaScript for simplicity
        // ...many more options available
    };

    AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Report.pdf", AspxToPdfOptions);
}
Imports IronPdf

Public Shared Sub RenderAspxToPdf()
	Dim AspxToPdfOptions = New ChromePdfRenderOptions() With {.EnableJavaScript = False}

	AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.Attachment, "Report.pdf", AspxToPdfOptions)
End Sub
$vbLabelText   $csharpLabel

We hope this article has helped you in learning how to generate a PDF report in ASP.NET C# or VB.NET. You can also take a look through our full ASP.NET ASPX to PDF Tutorial to learn more.

Preguntas Frecuentes

¿Cómo puedo generar informes PDF en ASP.NET usando C#?

Puedes generar informes PDF en ASP.NET usando IronPDF para convertir documentos HTML en formato PDF. Primero, crea tu informe como un documento HTML y luego usa las capacidades de renderizado de IronPDF para convertirlo a PDF.

¿Qué pasos debo seguir para instalar IronPDF para la generación de PDF en C#?

Para instalar IronPDF, puedes usar la Consola del Administrador de Paquetes NuGet con el comando Install-Package IronPdf o descargar el DLL desde el sitio oficial de NuGet y añadirlo a tu proyecto manualmente.

¿Puedo convertir informes Crystal a PDFs en una aplicación C#?

Sí, puedes convertir informes Crystal a PDFs primero exportándolos como HTML y luego usando IronPDF para renderizar los archivos HTML en formato PDF.

¿Cómo aseguro mis informes PDF generados en C#?

Puedes asegurar tus informes PDF firmándolos digitalmente con IronPDF. Esto asegura que el PDF no ha sido alterado después de ser creado y guardado.

¿Es posible manejar JavaScript al convertir HTML a PDF en C#?

IronPDF puede procesar contenido JavaScript al renderizar HTML a PDF. Esta característica se puede habilitar o deshabilitar según las necesidades de tu proyecto.

¿Cómo puedo convertir informes de SQL Server a PDF usando C#?

Puedes exportar informes de SQL Server a HTML y luego usar IronPDF para convertir estos archivos HTML en PDFs, asegurando que los informes mantengan su formato y diseño.

¿Cuál es el beneficio de usar HTML para la generación de informes PDF?

Usar HTML permite un estilo y formato detallados, que IronPDF puede convertir con precisión en formato PDF, asegurando que se preserve la integridad visual del informe.

¿Puedo convertir informes XML a PDFs usando IronPDF en C#?

Sí, puedes convertir informes XML a PDFs usando XSLT para transformar el XML en HTML, que luego puede ser renderizado como PDF usando IronPDF.

¿Cómo renderizo una página ASPX a PDF en una aplicación ASP.NET WebForms?

En una aplicación ASP.NET WebForms, puedes usar IronPdf.AspxToPdf en el evento Form_Load para renderizar una página ASPX como PDF.

¿Dónde puedo encontrar recursos para usar IronPDF en C#?

Puedes encontrar tutoriales y recursos en el sitio web de IronPDF, incluyendo guías sobre cómo convertir ASPX a PDF y generar informes desde diferentes fuentes de datos.

.NET 10: ¿IronPDF es totalmente compatible con .NET 10 y qué beneficios aporta?

Sí, IronPDF es totalmente compatible con .NET 10 sin necesidad de soluciones alternativas ni API abandonadas. Usar IronPDF en proyectos .NET 10 ofrece ventajas como mejoras de rendimiento, menor consumo de memoria e integración fluida mediante NuGet, compatible con modelos de aplicaciones modernos como entornos web, de escritorio, de contenedores y de servidor.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 16,154,058 | Versión: 2025.11 recién lanzado