使用 C# 或 VB 在 ASP.NET 中產生 PDF 報告(HTML轉PDF)
IronPDF使.NET開發人員能夠透過將 HTML 內容呈現為 PDF 文檔,從 HTML、Crystal Reports、XML 和 SQL Server 資料產生 PDF 報告。 這個 C# 函式庫只需幾行程式碼即可簡化ASP.NET應用程式中的報表創建,並保留所有格式和樣式。
快速入門:使用IronPDF產生 PDF 報告
只需幾行程式碼,即可開始使用IronPDF產生 PDF 報告。 本快速指南可協助開發人員立即將 HTML 內容轉換為專業的 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 將 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);
}
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 等流行函式庫。
這些報告可以產生為 HTML 格式,然後可以使用IronPDF進行自訂並轉換為 PDF 格式。 IronPDF 的HTML 字串轉 PDF功能可對最終輸出進行完全控制。
對於需要安全資料存取的企業環境, 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 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>;
}
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# 或.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 风格和交互式元素。

