如何使用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 on NuGet

Install-Package IronPdf

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


如何使用教程

创建 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");
$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");
$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));
}
$vbLabelText   $csharpLabel

如何从 XML 生成 PDF 报告?

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

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

更优雅的解决方案是使用 XSLT 将 XML 直接转换为 HTML,使用 XslCompiledTransform 类,如文章"使用 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);
}
$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");
$vbLabelText   $csharpLabel

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

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

在ASP.NET中提供 HTML 内容的最简单方法是在ASP.NET WebForms 应用程序的 Form_Load 事件中使用 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>;
}
$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 下载 17,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

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