如何使用 IronPDF 在 C# for .NET 中建立 PDF 報告

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

從 SQL 等結構化數據生成管理或數據庫報告是常見的 .NET 開發任務。 IronPDF 可用作 C# 中的 PDF 閱讀器,並幫助在 ASP.NET C# 中將 SSIS 報告可視化並導出為 PDF。

IronPDF 可以用於將數據的快照呈現為 PDF 文件格式的“報告”。 它還可用作 PDF C# 解析器。

作為標題:2(快速入門:使用 IronPDF 生成 PDF 報告)

只需幾行代碼,即可使用 IronPDF 開始生成 PDF 報告。 這份快速指南使開發人員能夠立即將 HTML 內容轉換為專業的 PDF 文件,輕鬆保留所有格式。 請參考下面的示例,看看將您的數據轉換為精美的 PDF 報告是多麼簡單。

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
class="hsg-featured-snippet">

最小工作流程(5 步驟)

  1. 下載並安裝 IronPDF C# PDF 報告庫
  2. 將報告生成為 HTML 文檔,然後將 HTML 呈現為 PDF
  3. 使用以下命令導出為 HTML:文件 -> 導出並選擇 HTML 4.0
  4. 樣式為 XML 報告,可以解析 XML,然後使用數據生成 HTML
  5. 保證 PDF 報告未被修改或篡改;可以進行數字簽名

class="tutorial-segment-title">步驟 1

1. 安裝 IronPDF

使用 NuGet:IronPdf on NuGet

Install-Package IronPdf

您也可以手動下載 IronPDF DLL


class="tutorial-segment-title">教程說明

2. 創建 PDF 報告的方法論

基本方法是先將報告生成為 HTML 文檔,然後使用 IronPDF 將 HTML 呈現為 PDF。 本教程將向您展示在 ASP.NET C# 中創建 PDF 報告的步驟。

: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. 使用 .NET 將 Crystal Reports 轉換為 PDF

在 Crystal Reports 應用程序中,您可以使用以下命令導出為 HTML:

文件 -> 導出並選擇 HTML 4.0

然後可以使用方法論部分中的上述 C# 示例代碼將生成的報告導出為 PDF。

這是一個示例:

: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 使用 C# 編程地將 Crystal Reports 轉換為 PDF

如果您希望通過程式控制從 Crystal Reports (RPT) 文件創建 PDF,這也是可能的,並且給予您更多控制。

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 報告

儘管存在更容易編碼的格式(如 JSON),導出報告數據為 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)
{
    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

請訪問在 C# 和 VB.NET 中文件轉換 XML 為 PDF 的文章了解更多信息。

5. Microsoft SQL Server 報告

Microsoft 的 SQL Server 和免費的 SQL Server Express 包含報告工具。 在 ASP.NET 中將 SSRS 報告導出為 PDF 是使用 IronPDF 的一個有用的功能。

教程:如何定位和啟動報告服務工具(SSRS)

這些報告可以生成為 HTML,然後可以自定義並使用 IronPDF 轉換為 PDF 格式。

呈現為 HTML(報告生成器)

6. 報告安全

為了防止 PDF 報告被修改或篡改,可以進行數字簽名。 這可以在 PDF 報告文件渲染和保存到磁盤後最輕鬆地完成。

: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 上創建新的數字簽名文件。

7. 使用 ASP.NET Webforms 將 ASPX 轉換為 PDF

在 ASP.NET 中提供 HTML 內容的最簡便方法是在 ASP.NET WebForms 應用程序的 Form_Load 事件中使用 IronPdf.AspxToPdf 類。

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

我們希望這篇文章有助於您了解如何在 ASP.NET C# 或 VB.NET 中生成 PDF 報告。 您也可以查看我們完整的 ASP.NET ASPX to PDF教程 以了解更多信息。

常見問題解答

如何使用 C# 在 ASP.NET 中產生 PDF 報告?

您可以使用 IronPDF 在 ASP.NET 中產生 PDF 報表,只需將 HTML 文件轉換為 PDF 格式即可。首先,將您的報表建立為 HTML 文檔,然後使用 IronPDF 的渲染功能將其轉換為 PDF。

如何在C#中安裝IronPDF以產生PDF檔案?應該按照哪些步驟操作?

要安裝 IronPDF,您可以使用 NuGet 套件管理器控制台,透過命令Install-Package IronPdf來安裝,或從 NuGet 官方網站下載 DLL 文件,然後手動將其新增至您的專案。

我可以在 C# 應用程式中將 Crystal Reports 轉換為 PDF 嗎?

是的,您可以將 Crystal Reports 轉換為 PDF,方法是先將其匯出為 HTML,然後使用 IronPDF 將 HTML 檔案渲染成 PDF 格式。

如何保護我用 C# 產生的 PDF 報告?

您可以使用 IronPDF 對 PDF 報告進行數位簽名,從而確保其安全性。這樣可以確保 PDF 檔案在建立和儲存後不會被竄改。

在 C# 中將 HTML 轉換為 PDF 時,是否可以處理 JavaScript?

IronPDF 可以在將 HTML 渲染為 PDF 時處理 JavaScript 內容。您可以根據項目需求啟用或停用此功能。

如何使用 C# 將 SQL Server 報表轉換為 PDF?

您可以將 SQL Server 報表匯出為 HTML,然後使用 IronPDF 將這些 HTML 檔案轉換為 PDF,從而確保報表保持其格式和佈局。

使用HTML產生PDF報告有什麼好處?

使用 HTML 可以進行詳細的樣式和格式設置,IronPDF 可以準確地將其轉換為 PDF 格式,從而確保報告的視覺完整性得以保留。

我可以使用 C# 中的 IronPDF 將 XML 報表轉換為 PDF 嗎?

是的,您可以使用 XSLT 將 XML 轉換為 HTML,然後使用 IronPDF 將 HTML 渲染為 PDF,從而將 XML 報表轉換為 PDF。

如何在 ASP.NET WebForms 應用程式中將 ASPX 頁面渲染為 PDF?

在 ASP.NET WebForms 應用程式中,您可以在 Form_Load 事件中使用 IronPdf.AspxToPdf 將 ASPX 頁面呈現為 PDF。

在哪裡可以找到有關在 C# 中使用 IronPDF 的資源?

您可以在 IronPDF 網站上找到教學和資源,包括將 ASPX 轉換為 PDF 以及從不同資料來源產生報告的指南。

.NET 10:IronPDF 是否完全相容於 .NET 10,以及它能帶來哪些好處?

是的,IronPDF 與 .NET 10 完全相容,無需任何變通方案或使用已棄用的 API。在 .NET 10 專案中使用 IronPDF 可帶來許多優勢,例如效能提升、記憶體佔用降低以及透過 NuGet 實現無縫整合——支援 Web、桌面、容器和伺服器等現代應用程式模型。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 16,154,058 | 版本: 2025.11 剛剛發布