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, zgodnie z opisem w artykule Korzystanie z klasy XslCompiledTransform.

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 udostępnienie 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

Jak generować raporty PDF z HTML w C#?

IronPDF umożliwia generowanie raportów PDF z HTML za pomocą jednej linii kodu: new IronPdf.ChromePdfRenderer().RenderHtmlFileAsPdf("report.html").SaveAs("report.pdf"). To zachowuje całe formatowanie i stylizację HTML w końcowym dokumencie PDF.

Jakie typy raportów można przekształcić na PDF?

IronPDF obsługuje przekształcanie wielu typów raportów na PDF, w tym raporty HTML, Crystal Reports (eksportowane jako HTML 4.0), raporty XML (stylizowane z HTML) oraz raporty danych SQL Server. Biblioteka używa silnika renderowania Chrome, aby zapewnić konwersję zgodną z dokładnością pikselową.

Jak zainstalować bibliotekę generatora raportów PDF?

Możesz zainstalować IronPDF za pomocą Menedżera Pakietów NuGet, używając polecenia 'Install-Package IronPdf', lub pobrać plik DLL ręcznie. Biblioteka obsługuje różne platformy, w tym Azure, AWS, Linux, Mac, Windows i kontenery Docker.

Czy mogę przekształcić Crystal Reports na PDF w .NET?

Tak, możesz przekształcić Crystal Reports na PDF używając IronPDF, najpierw eksportując raport Crystal do formatu HTML 4.0 (Plik → Eksportuj → HTML 4.0), następnie używając metody RenderHtmlFileAsPdf IronPDF do przekształcenia wyjścia HTML w dokument PDF.

Jak utworzyć raporty PDF z danych SQL Server?

Aby utworzyć raporty PDF z danych SQL Server, najpierw wygeneruj raport HTML z danymi, a następnie użyj ChromePdfRenderer IronPDF, aby przekształcić HTML w PDF. Biblioteka zachowuje całe formatowanie, co czyni ją idealną dla raportów opartych na danych.

Czy mogę cyfrowo podpisywać raporty PDF?

Tak, IronPDF pozwala na cyfrowe podpisywanie raportów PDF, aby zapewnić, że nie zostały zmienione. Ta funkcja dodaje dodatkową warstwę bezpieczeństwa i autentyczności do generowanych dokumentów PDF.

Czy biblioteka obsługuje nowoczesne standardy webowe?

Silnik renderowania Chrome IronPDF w pełni obsługuje nowoczesne standardy HTML5, CSS3 oraz JavaScript, zapewniając, że raporty są renderowane dokładnie ze wszystkimi współczesnymi stylizacjami webowymi i elementami interaktywnymi zachowanymi w wyjściu PDF.

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,926,724 | Wersja: 2026.5 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.