Generowanie raportów PDF w ASP.NET za pomocą języka C# lub VB
IronPDF umożliwia programistom .NET generowanie raportów PDF na podstawie danych HTML, Crystal Reports, XML i SQL Server poprzez renderowanie treści HTML jako dokumentów PDF. Ta biblioteka C# upraszcza tworzenie raportów w aplikacjach ASP.NET za pomocą zaledwie kilku wierszy kodu, zachowując całe formatowanie i styl.
Szybki start: Generowanie raportów PDF za pomocą IronPDF
Zacznij generować raporty PDF za pomocą IronPDF za pomocą zaledwie kilku wierszy kodu. Ten krótki przewodnik umożliwia programistom natychmiastowe konwertowanie treści HTML na profesjonalne dokumenty PDF, zachowując bez wysiłku całe formatowanie. Skorzystaj z poniższego przykładu, aby przekonać się, jak łatwo przekształcić dane w profesjonalny raport w formacie PDF.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
// Instantiate ChromePdfRenderer for HTML to PDF conversion new IronPdf.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf"); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Pobierz i zainstaluj bibliotekę IronPDF C# PDF Report Library
- Generuj raporty jako dokumenty HTML i renderuj je jako pliki PDF
- Eksportuj raporty Crystal Reports, korzystając z: Plik → Eksportuj → HTML 4.0
- Formatowanie raportów XML poprzez parsowanie XML i generowanie HTML z danymi
- Podpisuj cyfrowo pliki PDF, aby mieć pewność, że raporty nie zostały sfałszowane
Krok 1
Jak zainstalować IronPDF?
Install-Package IronPdf
Można również ręcznie pobrać bibliotekę DLL IronPDF. W przypadku zaawansowanych scenariuszy instalacji zapoznaj się z naszym obszernym przewodnikiem po pakietach NuGet, który obejmuje konfigurację dla platform Azure, AWS, Linux, Mac i Windows. Jeśli pracujesz z aplikacjami kontenerowymi, nasz przewodnik po integracji z Dockerem zawiera szczegółowe instrukcje konfiguracji.
Poradnik "Jak to zrobić"
Jaka jest metodologia tworzenia raportu w formacie PDF?
Najpierw wygeneruj raport jako dokument HTML, a następnie przekonwertuj HTML na PDF za pomocą IronPDF. Ten samouczek pokazuje kroki tworzenia raportu PDF w ASP.NET C#. Silnik renderujący IronPDF dla przeglądarki Chrome zapewnia konwersję z idealną dokładnością pikselową, obsługując jednocześnie nowoczesne standardy HTML5, CSS3 i 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")
W przypadku bardziej złożonych potrzeb związanych z raportowaniem zapoznaj się z naszym obszernym samouczkiem dotyczącym tworzenia plików PDF, który obejmuje znaki wodne, kompresję, tła, nagłówki, stopki, formularze i ochronę hasłem.
Jak przekonwertować Crystal Reports do formatu PDF za pomocą .NET?
Eksportuj raporty Crystal Reports do formatu HTML za pomocą:
Plik → Eksportuj → HTML 4.0
Gotowy raport można następnie wyeksportować do formatu PDF, korzystając z powyższego przykładowego kodu w języku C#, zamieszczonego w sekcji "Metodologia". IronPDF zapewnia doskonałą obsługę konwersji plików HTML do formatu PDF, zachowując całe formatowanie i style z plików wyjściowych Crystal Reports.
Oto przykład:
: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")
Aby uzyskać informacje na temat zaawansowanego dostosowywania nagłówków i stopek, w tym nagłówków opartych na HTML, zapoznaj się z naszym przewodnikiem dotyczącym nagłówków i stopek.
Jak mogę programowo przekonwertować Crystal Reports do formatu PDF?
Jeśli chcesz programowo utworzyć plik PDF z pliku Crystal Reports (RPT), jest to również możliwe i zapewnia znacznie większą kontrolę. Takie podejście płynnie integruje się z opcjami renderowania IronPDF, umożliwiając pełną personalizację.
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
Jak generować raporty PDF z plików XML?
Eksportowanie danych raportów w formacie XML jest nadal powszechne, pomimo popularności formatów łatwiejszych do kodowania, takich jak JSON. IronPDF oferuje doskonałą obsługę konwersji XML do PDF, zapewniając wiele metod przetwarzania danych XML.
Aby sformatować raporty XML, należy przeanalizować XML i wygenerować kod HTML z danymi.
Bardziej eleganckim rozwiązaniem jest użycie XSLT do bezpośredniej konwersji XML na HTML przy użyciu klasy XslCompiledTransform, jak opisano w artykule Using the XslCompiledTransform Class.
Powstały ciąg znaków lub plik HTML można następnie przekształcić w plik PDF za pomocą IronPDF:
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
Zapraszamy do zapoznania się z artykułem "Konwersja XML do PDF w C# i VB.NET", aby dowiedzieć się więcej o zaawansowanych technikach transformacji XML i najlepszych praktykach.
Jak wyeksportować raporty SQL Server do formatu PDF?
SQL Server firmy Microsoft oraz bezpłatny SQL Server Express zawierają narzędzia do tworzenia raportów. Eksportowanie raportów SSRS do formatu PDF w ASP.NET może być przydatnym zastosowaniem IronPDF. W przypadku złożonych potrzeb związanych z wizualizacją danych IronPDF obsługuje renderowanie wykresów JavaScript, w tym popularnych bibliotek, takich jak C3.js, D3.js i Highcharts.
Samouczek: Jak znaleźć i uruchomić narzędzia Reporting Services (SSRS)
Raporty te mogą być generowane w formacie HTML, a następnie dostosowywane i konwertowane do formatu PDF za pomocą IronPDF. Funkcja konwersji ciągów HTML do formatu PDF w IronPDF zapewnia pełną kontrolę nad ostatecznym wynikiem.
Renderowanie do HTML (Report Builder)
W środowiskach Enterprise wymagających bezpiecznego dostępu do danych IronPDF obsługuje logowanie do stron internetowych i systemów za pomocą protokołu TLS, umożliwiając generowanie raportów po uwierzytelnieniu.
Jak zabezpieczyć raporty PDF?
Aby upewnić się, że raport PDF nie został zmodyfikowany ani sfałszowany, należy go podpisać cyfrowo. Najłatwiej jest to osiągnąć w przypadku pliku raportu PDF po jego wyrenderowaniu i zapisaniu na dysku. IronPDF zapewnia kompleksowe możliwości podpisywania plików PDF, w tym obsługę modułów bezpieczeństwa sprzętowego (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")
Jeśli nie posiadasz podpisu cyfrowego, możesz utworzyć nowy plik podpisu cyfrowego za pomocą bezpłatnego programu Adobe Acrobat Reader na systemach macOS i Windows. Aby uzyskać dodatkowe środki bezpieczeństwa, zapoznaj się z naszym przewodnikiem dotyczącym uprawnień i haseł do plików PDF, aby kontrolować dostęp do dokumentów i prawa do edycji.
Jak przekonwertować plik ASPX na PDF za pomocą ASP.NET Webforms?
Najprostszym sposobem na serwowanie treści HTML w ASP.NET jest użycie klasy IronPdf.AspxToPdf w zdarzeniu Form_Load aplikacji ASP.NET WebForms. Ta potężna funkcja pozwala na konwersję całych stron ASPX, w tym elementów sterujących po stronie serwera i treści dynamicznej, bezpośrednio do formatu 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
Mamy nadzieję, że ten artykuł pomógł Ci w nauce generowania raportów PDF w ASP.NET C# lub VB.NET. Możesz również zapoznać się z naszym pełnym samouczkiem dotyczącym konwersji plików ASP.NET ASPX do formatu PDF, aby dowiedzieć się więcej o zaawansowanych scenariuszach, w tym o ustawieniach konwersji stron ASPX do formatu PDF oraz obsłudze złożonych układów.
Często Zadawane Pytania
How do I generate PDF reports from HTML in C#?
IronPDF enables you to generate PDF reports from HTML with just one line of code: new IronPdf.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf"). This preserves all HTML formatting and styling in the final PDF document.
What types of reports can be converted to PDF?
IronPDF supports converting multiple report types to PDF including HTML reports, Crystal Reports (exported as HTML 4.0), XML reports (styled with HTML), and SQL Server data reports. The library uses a Chrome rendering engine to ensure pixel-perfect conversion.
How do I install the PDF report generator library?
You can install IronPDF via NuGet Package Manager using the command 'Install-Package IronPdf', or download the DLL manually. The library supports various platforms including Azure, AWS, Linux, Mac, Windows, and Docker containers.
Can I convert Crystal Reports to PDF in .NET?
Yes, you can convert Crystal Reports to PDF using IronPDF by first exporting the Crystal Report to HTML 4.0 format (File → Export → HTML 4.0), then using IronPDF's RenderHtmlFileAsPdf method to convert the HTML output to a PDF document.
How do I create PDF reports from SQL Server data?
To create PDF reports from SQL Server data, first generate an HTML report with your data, then use IronPDF's ChromePdfRenderer to convert the HTML to PDF. The library preserves all formatting, making it ideal for database-driven reports.
Can I digitally sign PDF reports?
Yes, IronPDF allows you to digitally sign PDF reports to ensure they haven't been tampered with. This feature adds an extra layer of security and authenticity to your generated PDF documents.
Does the library support modern web standards?
IronPDF's Chrome rendering engine fully supports modern HTML5, CSS3, and JavaScript, ensuring your reports render accurately with all contemporary web styling and interactive elements preserved in the PDF output.

