使用 C# 或 VB 在 ASP.NET 中產生 PDF 報告
IronPDF 讓 .NET 開發人員能夠透過將 HTML 內容渲染為 PDF 文件,從 HTML、Crystal Reports、XML 及 SQL Server 資料中產生 PDF 報表。 此 C# 函式庫僅需幾行程式碼,即可簡化 ASP.NET 應用程式的報表建立流程,並完整保留所有格式與樣式。
快速入門:使用 IronPDF 產生 PDF 報告
只需幾行程式碼,即可開始使用 IronPDF 生成 PDF 報告。 這份快速指南讓開發者能夠立即將 HTML 內容轉換為 Professional PDF 文件,並輕鬆保留所有格式設定。 請參閱以下範例,了解將您的資料轉化為精美 PDF 報告是多麼簡單。
簡化工作流程(5 個步驟)
- 下載並安裝 IronPDF C# PDF 報表函式庫
- 將報告產生為 HTML 文件,並渲染為 PDF 檔案
- 使用以下方式匯出 Crystal Reports:檔案 → 匯出 → HTML 4.0
- 透過解析 XML 並利用資料生成 HTML 來格式化 XML 報告
- 對 PDF 進行數位簽章,以確保報告未遭篡改
步驟 1
如何安裝 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");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
renderer.RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf")
若您有更複雜的報表需求,歡迎參閱我們的完整 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")
如需進行進階的頁首與頁尾自訂(包括基於 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
如何從 XML 生成 PDF 報告?
儘管有 JSON 等更易於編寫的格式盛行,將報告資料匯出為 XML 仍屬常見做法。 IronPDF 提供出色的 XML 轉 PDF 轉換支援,並提供多種處理 XML 資料的方法。
若要為 XML 報告設定樣式,請先解析 XML,並利用其中的資料產生 HTML。
更優雅的解決方案是使用 XSLT,透過文章《使用 XslCompiledTransform 類別》中所述的 XslCompiledTransform 類別,將 XML 直接轉換為 HTML。
生成的 HTML 字串或檔案可透過 IronPDF 渲染為 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
請參閱《使用 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 等熱門函式庫。
教學指南:如何尋找並啟動 Reporting Services 工具 (SSRS)
這些報告可生成為 HTML 格式,隨後可透過 IronPDF 進行自訂並轉換為 PDF 格式。 IronPDF 的 HTML 字串轉 PDF 功能,讓您能完全掌控最終輸出結果。
對於需要安全資料存取的 Enterprise 環境,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")
若您尚未擁有數位簽章,可透過 macOS 或 Windows 上的免費 Adobe Acrobat Reader 建立新的數位簽章檔案。 若需採取額外的安全措施,請參閱我們的 PDF 權限與密碼指南,以控制文件的存取與編輯權限。
如何使用 ASP.NET Web Forms 將 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>;
}
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
希望本文能協助您了解如何在 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 Reports(以 HTML 4.0 格式匯出)、XML 報表(採用 HTML 樣式)以及 SQL Server 資料報表。此函式庫採用 Chrome 渲染引擎,以確保轉換效果精準無誤。
如何安裝 PDF 報表產生器函式庫?
您可以透過 NuGet 套件管理員,使用命令 'Install-Package IronPdf' 安裝 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 輸出中完整保留所有當代網頁樣式與互動元素。

