如何使用IronPDF在C#中创建PDF报告

在 ASP.NET 中使用 C## 或 VB 生成 PDF 报告

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

IronPDF for .NET 通过将 HTML 内容渲染为 PDF 文档,使 .NET 开发人员能够从 HTML、Crystal Reports、XML 和 SQL Server 数据生成 PDF 报告。 该 C# 库只需几行代码即可简化 ASP.NET 应用程序中的报表创建,并保留所有格式和样式。

快速入门:使用IronPDF生成 PDF 报告

仅需几行代码即可使用 IronPDF 开始生成 PDF 报告。 这份简明指南使开发人员能够立即将 HTML 内容转换为专业的 PDF 文档,并轻松保留所有格式。 请参阅下面的示例,了解如何简单地将您的数据转换为精美的 PDF 报告。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    // Instantiate ChromePdfRenderer for HTML to PDF conversion
    new IronPdf.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer

步骤1

如何安装 IronPDF?

IronPDF在NuGet上

Install-Package IronPdf

您也可以手动下载 IronPDF DLL。 有关高级安装方案,请查看我们全面的 NuGet 软件包指南,其中涵盖了 Azure、AWS、Linux、Mac 和 Windows 平台的配置。 如果您正在使用容器化应用程序,我们的Docker集成指南提供了详细的设置说明。


如何使用教程

Icon Quote related to 如何使用教程

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic related to 如何使用教程

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to 如何使用教程

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle related to 如何使用教程

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to 如何使用教程

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones related to 如何使用教程

David Jones

首席软件工程师,Agorus Build

查看案例研究

创建 PDF 报告的方法是什么?

首先将报告生成 HTML 文档,然后使用 IronPDF 将 HTML 呈现为 PDF。 本教程向您展示了在 ASP.NET C# 中创建 PDF 报告的步骤。 IronPDF 的Chrome 渲染引擎可确保像素级完美转换,同时支持现代 HTML5、CSS3 和 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")
$vbLabelText   $csharpLabel

对于更复杂的报告需求,请浏览我们的综合 PDF 创建教程,其中包括水印、压缩、背景、页眉、页脚、表单和密码保护。

如何使用 .NET 将 Crystal Reports 转换为 PDF?

使用以下工具将 Crystal Reports 导出为 HTML

文件 → 导出 → HTML 4.0

然后可以使用方法论部分中上述的 C# 示例代码将生成的报告导出为 PDF。 IronPDF 为 将 HTML 文件转换为 PDF 提供了出色的支持,保持了 Crystal Reports 输出中的所有格式和样式。

下面是一个例子:

: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

有关高级页眉和页脚定制,包括基于 HTML 的页眉,请访问我们的页眉和页脚指南

如何以编程方式将 Crystal Reports 转换为 PDF?

如果您希望通过编程方式从 Crystal Reports (RPT) 文件创建 PDF,这也是可能的,可以为您提供更大的控制。 这种方法可与 IronPDF 的渲染选项无缝集成,实现完全定制。

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
$vbLabelText   $csharpLabel

如何从 XML 生成 PDF 报告?

尽管 JSON 等更易于编码的格式已经普及,但以 XML 格式导出报告数据仍然很常见。 IronPDF 为 XML 到 PDF 的转换提供了出色的支持,提供了多种处理 XML 数据的方法。

为 XML 报告设计样式,解析 XML 并将数据生成 HTML。

更优雅的解决方案是使用XSLT通过使用XslCompiledTransform类将XML直接转换为HTML,如文章使用XslCompiledTransform类中所述。

然后可以使用 IronPDF 将生成的 HTML 字符串或文件呈现为 PDF:

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
$vbLabelText   $csharpLabel

请访问在 C# 和 VB.NET 中将 XML 转换为 PDF 的文章,了解有关高级 XML 转换技术和最佳实践的更多信息。

如何将 SQL Server 报表导出为 PDF?

微软的 SQL 服务器和免费的 SQL 服务器 Express 包含报告工具。 将 SSRS 报告导出为 ASP.NET 中的 PDF 是 IronPDF 的一个有用用途。 对于复杂的数据可视化需求,IronPDF 支持 渲染 JavaScript 图表,包括 C3.js、D3.js 和 Highcharts 等流行库。

教程:如何定位和启动 SSRS 工具

这些报告可以生成为 HTML,然后可以定制,并使用 IronPDF 转换为 PDF 格式。 IronPDF 的 HTML 字符串到 PDF 的转换功能可完全控制最终输出。

渲染为 HTML(报告生成器)

对于需要安全数据访问的企业环境,IronPDF 支持 TLS 网站和系统登录,以处理经过验证的报告生成。

如何确保 PDF 报告的安全?

为确保 PDF 报告未经修改或篡改,请对其进行数字签名。 这最容易在 PDF 报告文件被渲染然后保存到磁盘后实现。 IronPDF 提供全面的PDF 签名功能,包括支持硬件安全模块 (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")
$vbLabelText   $csharpLabel

如果您没有数字签名,可以使用免费的 Adobe Acrobat Reader 在 macOS 和 Windows 上创建新的数字签名文件。 有关其他安全措施,请浏览我们的IronPDF权限和密码指南,以控制文档访问和编辑权限。

如何使用 ASP.NET Webforms 将 ASPX 转换为 PDF?

在ASP.NET中提供HTML内容的最简单方法是使用ASP.NET WebForms应用程序中IronPdf.AspxToPdf类。 这项强大的功能可让您将整个 ASPX 页面(包括服务器端控件和动态内容)直接转换为 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
$vbLabelText   $csharpLabel

我们希望这篇文章已帮助您学习如何在 ASP.NET C# 或 VB.NET 中生成 PDF 报告。 您还可以查看我们完整的ASP.NET ASPX 转 PDF 教程,了解更多高级应用场景,包括 ASPX 页面转 PDF 设置和处理复杂布局。

常见问题解答

如何用 C# 从 HTML 生成 PDF 报告?

IronPDF 使您只需一行代码就能从 HTML 生成 PDF 报告:new IronPdf.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf").这将在最终 PDF 文档中保留所有 HTML 格式和样式。

哪些类型的报告可以转换为 PDF?

IronPDF 支持将多种报告类型转换为 PDF,包括 HTML 报告、Crystal 报告(导出为 HTML 4.0)、XML 报告(采用 HTML 风格)和 SQL Server 数据报告。该库使用 Chrome 渲染引擎,以确保像素级的完美转换。

如何安装 PDF 报告生成器库?

您可以使用 "Install-Package IronPDF "命令通过 NuGet 包管理器安装 IronPDF,也可以手动下载 DLL。该库支持各种平台,包括 Azure、AWS、Linux、Mac、Windows 和 Docker 容器。

我可以在 .NET 中将 Crystal Reports 转换为 PDF 吗?

是的,您可以使用 IronPDF 将 Crystal Reports 转换为 PDF,方法是首先将 Crystal Report 导出为 HTML 4.0 格式(文件 → 导出 → HTML 4.0),然后使用 IronPDF 的 RenderHtmlFileAsPdf 方法将 HTML 输出转换为 PDF 文档。

如何从 SQL Server 数据创建 PDF 报告?

要从 SQL Server 数据创建 PDF 报告,首先用数据生成 HTML 报告,然后使用 IronPDF 的 ChromePdfRenderer 将 HTML 转换为 PDF。该库保留了所有格式,因此非常适合数据库驱动的报告。

我可以对 PDF 报告进行数字签名吗?

是的,IronPDF 允许您对 PDF 报告进行数字签名,以确保它们未被篡改。该功能为您生成的 PDF 文档增加了一层额外的安全性和真实性。

库是否支持现代网络标准?

IronPDF 的 Chrome 渲染引擎完全支持现代 HTML5、CSS3 和 JavaScript,确保您的报告准确渲染,并在 PDF 输出中保留所有现代网络样式和交互元素。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 20,296,129 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。