在ASP.NET中使用C#或VB生成PDF報告
IronPDF使.NET開發人員能夠通過將HTML內容渲染為PDF文件,以生成來自HTML、Crystal Reports、XML和SQL伺服器資料的PDF報告。 此C#程式庫通過幾行程式碼簡化了在ASP.NET應用程式中的報告建立,同時保留所有格式和樣式。
快速入門:使用IronPDF生成PDF報告
只需幾行程式碼即可使用IronPDF開始生成PDF報告。 本快速指南使得開發者可以快捷地將HTML內容轉換為專業的PDF文件,輕鬆保留所有格式。 請參考下面的範例,了解如何輕鬆地將資料轉換為精美的PDF報告。
最小工作流程 (5步)
- 下載並安裝IronPDF C# PDF報告程式庫
- 生成HTML文件格式的報告並將它們渲染為PDF
- 使用:文件 → 匯出 → HTML 4.0來匯出Crystal Reports
- 通過解析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報告?
儘管XML不如JSON等格式易於編碼,但匯出報告資料為XML仍然很常見。 IronPDF提供了卓越的XML到PDF轉換支持,提供多種方法來處理XML資料。
在設置XML報告樣式時,解析XML並用資料生成HTML。
更加優雅的解決方案是使用XSLT借助XslCompiledTransform類將XML直接轉換為HTML,詳見文章使用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伺服器報告匯出為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應用的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報告、被導出為HTML 4.0的Crystal Reports、經HTML樣式化的XML報告和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格式(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輸出中。

