如何使用 IronPDF 在 C# 中創建 PDF 報告

使用 C# 或 VB 在ASP.NET中產生 PDF 報告

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

IronPDF使.NET開發人員能夠透過將 HTML 內容呈現為 PDF 文檔,從 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?

在NuGet上IronPDF

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 Server 和免費的 SQL Server Express 都包含報表工具。 在ASP.NET中,將 SSRS 報表匯出為 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

如果您沒有數位簽名,可以使用 macOS 和 Windows 上的免費 Adob​​e Acrobat Reader 建立新的數位簽名檔。 如需更多安全措施,請參閱我們的PDF 權限和密碼指南,以控製文件的存取和編輯權限。

如何使用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# 或.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 Package Manager 安裝 IronPDF,或手動下載 DLL。該函式庫支援各種平台,包括 Azure、AWS、Linux、Mac、Windows 和 Docker 容器。

我可以在 .NET 中將 Crystal Reports 轉換為 PDF 嗎?

是的,您可以使用 IronPDF 將 Crystal Reports 轉換為 PDF,方法是先將 Crystal Report 匯出為 HTML 4.0 格式 (File → Export → 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 輸出中保留所有現代 Web 风格和交互式元素。

Curtis Chau
技術作家

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

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

準備好開始了嗎?
Nuget 下載 17,803,474 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想快速取得證據? PM > Install-Package IronPdf
運行範例看著你的HTML程式碼變成PDF檔。