Jak utworzyć raport PDF w języku C# dla platformy .NET przy użyciu IronPDF

Generowanie raportów PDF w ASP.NET za pomocą języka C# lub VB

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

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.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    // Instantiate ChromePdfRenderer for HTML to PDF conversion
    new IronPdf.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Krok 1

Jak zainstalować IronPDF?

IronPdf na NuGet

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")
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,135,201 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.