Jak tworzyć raport w ASP .NET
Raporty są niezbędne do prezentacji danych w uporządkowanym i atrakcyjnym wizualnie formacie. Niezależnie od tego, czy chodzi o dane sprzedażowe, analityczne czy podsumowania finansowe, generowanie raportów jest powszechnym wymaganiem w aplikacjach internetowych. Firma Microsoft udostępnia usługi raportowania RDLC, które można zintegrować z aplikacjami internetowymi za pomocą kontrolki Web Forms Report Viewer Control. Jednak proces ten często bywa złożony i czasochłonny.
W tym miejscu do akcji wkracza IronPDF. IronPDF to wszechstronna biblioteka, która upraszcza generowanie raportów PDF w ASP.NET i innych frameworkach internetowych, oferując zaawansowane funkcje i łatwość użytkowania. W tym artykule omówimy, jak utworzyć raport w ASP.NET przy użyciu IronPDF.
Jak utworzyć raport w ASP.NET
- Utwórz aplikację internetową ASP.NET przy użyciu programu Visual Studio
- Zainstaluj IronPDF i IronPdf.Extensions.MVC.Core
- Utwórz instancję obiektu ChromePdfRenderer sender
- Wywołaj metodę RenderRazorViewToPDF, aby przekonwertować widok do formatu PDF
- Dodaj "Content-Disposition" za pomocą Response.Headers.Append
- Utwórz raport przy użyciu metody File z PDF.BinaryData
Wprowadzenie do IronPDF
IronPDF to wszechstronna biblioteka, która upraszcza generowanie dokumentów PDF w ASP.NET i innych frameworkach internetowych. Bogaty zestaw funkcji i intuicyjne interfejsy API sprawiają, że jest to idealny wybór dla programistów, którzy chcą generować dynamiczne raporty, faktury, pokwitowania i inne dokumenty bezpośrednio z poziomu swoich aplikacji internetowych. Dzięki IronPDF programiści mogą bez wysiłku konwertować widoki HTML, CSS, a nawet Razor na wysokiej jakości dokumenty PDF, co umożliwia płynną integrację funkcji raportowania z ich projektami ASP.NET.
Funkcje IronPDF
- Konwersja HTML do PDF: Łatwo konwertuj treści HTML, w tym style CSS, na wysokiej jakości dokumenty PDF.
- Edycja plików PDF: Modyfikuj istniejące dokumenty PDF, dodając lub usuwając tekst, obrazy i adnotacje.
- Wypełnianie formularzy PDF: Dynamiczne wypełnianie formularzy PDF danymi z aplikacji internetowej.
- Generowanie kodów kreskowych: Generuj kody kreskowe i kody QR w dokumentach PDF do etykiet produktów lub śledzenia zapasów.
- Znak wodny: Dodawaj znaki wodne do stron PDF, aby chronić poufne informacje lub dokumenty firmowe.
- Szyfrowanie i bezpieczeństwo: Zabezpieczaj dokumenty PDF za pomocą szyfrowania, haseł i ustawień uprawnień.
Wymagania wstępne
Zanim zaczniemy, upewnij się, że spełniasz następujące wymagania wstępne:
- Podstawowa wiedza na temat programowania w ASP.NET.
- Visual Studio jest zainstalowane na Twoim komputerze.
- IronPDF i IronPdf.Extensions.Mvc.Core
Kroki tworzenia projektu ASP.NET w Visual Studio
- Otwórz Visual Studio i utwórz nowy projekt ASP.NET Core.
-
Wybierz żądany szablon projektu (np. MVC lub Razor Pages).

-
Skonfiguruj ustawienia projektu, takie jak nazwa projektu, lokalizacja i wersja frameworka.

- Kliknij "Utwórz", aby wygenerować strukturę projektu.
Instalacja IronPDF i IronPdf.Extensions.Mvc.Core
Następnie zainstalujmy IronPDF i jego pakiet rozszerzeń MVC za pomocą menedżera pakietów NuGet:
- Otwórz menedżera pakietów NuGet dla rozwiązań, klikając prawym przyciskiem myszy Eksplorator rozwiązań.
-
Wyszukaj "IronPDF" i "IronPdf.Extensions.Mvc.Core".

- Zainstaluj oba pakiety w swoim rozwiązaniu.
Kroki tworzenia przeglądarki raportów w aplikacji internetowej ASP.NET
Przejdźmy teraz do omówienia kroków tworzenia raportu PDF przy użyciu IronPDF w naszym projekcie ASP.NET. Przed przekształceniem widoku w raport potrzebujemy modelu, widoku i kontrolera, aby utworzyć źródło danych do tworzenia i pobierania nowego raportu w formacie PDF.
Krok 1: Zdefiniuj klasę modelu
Najpierw utwórz klasę modelu (SalesModel.cs) reprezentującą dane dotyczące sprzedaży. Ta przykładowa klasa SalesModel będzie zawierała takie właściwości, jak Date, ProductName, Quantity, UnitPrice i TotalAmount. Jest to przydatne podczas pobierania informacji ze źródeł danych, takich jak Microsoft SQL Server lub MySQL Server.
namespace ReportGenerator.Models
{
public class SalesModel
{
public DateTime Date { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public decimal TotalAmount => Quantity * UnitPrice;
}
}
namespace ReportGenerator.Models
{
public class SalesModel
{
public DateTime Date { get; set; }
public string ProductName { get; set; }
public int Quantity { get; set; }
public decimal UnitPrice { get; set; }
public decimal TotalAmount => Quantity * UnitPrice;
}
}
Namespace ReportGenerator.Models
Public Class SalesModel
Public Property [Date]() As DateTime
Public Property ProductName() As String
Public Property Quantity() As Integer
Public Property UnitPrice() As Decimal
Public ReadOnly Property TotalAmount() As Decimal
Get
Return Quantity * UnitPrice
End Get
End Property
End Class
End Namespace
Krok 2: Utwórz nowy widok formularza internetowego
Następnie utwórz widok Razor (Sales.cshtml) w celu wyświetlenia danych dotyczących sprzedaży w formacie tabelarycznym oraz dodaj przycisk do generowania raportu w formacie PDF.
@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
<title>Sales Report</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<h2>Sales Report</h2>
<table>
<tr>
<th>Date</th>
<th>Product Name</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total Amount</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Date.ToShortDateString()</td>
<td>@item.ProductName</td>
<td>@item.Quantity</td>
<td>@item.UnitPrice.ToString("C")</td>
<td>@item.TotalAmount.ToString("C")</td>
</tr>
}
</table>
<br />
@using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
{
<button type="submit">Generate PDF Report</button>
}
</body>
</html>
@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
<title>Sales Report</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<h2>Sales Report</h2>
<table>
<tr>
<th>Date</th>
<th>Product Name</th>
<th>Quantity</th>
<th>Unit Price</th>
<th>Total Amount</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Date.ToShortDateString()</td>
<td>@item.ProductName</td>
<td>@item.Quantity</td>
<td>@item.UnitPrice.ToString("C")</td>
<td>@item.TotalAmount.ToString("C")</td>
</tr>
}
</table>
<br />
@using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
{
<button type="submit">Generate PDF Report</button>
}
</body>
</html>
Teraz dodaj pozycję menu "Sprzedaż" w pliku _Layout.cshtml znajdującym się w folderze Views->Shared, aby utworzyć widok kreatora raportów:
<!— Layout.cshtml —>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>
<!— Layout.cshtml —>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>

Krok 3: Rejestracja usługi renderowania widoku
Dodanie rejestracji usługi renderowania widoku w pliku Program.cs jest kluczowe dla prawidłowego działania wstrzykiwania zależności. Dodaj następujący kod do pliku Program.cs, aby zarejestrować usługę IRazorViewRenderer:
// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
' Register the IRazorViewRenderer service
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
Krok 4: Zaimplementuj klasę kontrolera Web API
Zaimplementuj kontroler (SalesController.cs) z akcjami służącymi do renderowania widoku sprzedaży i generowania raportu PDF. Wprowadź usługę IRazorViewRenderer dostarczaną przez IronPDF do konstruktora kontrolera.
using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
public class SalesController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
private readonly List<SalesModel> salesData;
public SalesController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
// Example data with sales information
salesData = new List<SalesModel>
{
new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
// Add more data as needed
};
}
public IActionResult Sales()
{
// Renders the sales view with the sales data
return View(salesData);
}
}
}
using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
public class SalesController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
private readonly List<SalesModel> salesData;
public SalesController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
// Example data with sales information
salesData = new List<SalesModel>
{
new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
// Add more data as needed
};
}
public IActionResult Sales()
{
// Renders the sales view with the sales data
return View(salesData);
}
}
}
Imports ReportGenerator.Models
Namespace ReportGenerator.Controllers
Public Class SalesController
Inherits Controller
Private ReadOnly _viewRenderService As IRazorViewRenderer
Private ReadOnly salesData As List(Of SalesModel)
Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
_viewRenderService = viewRenderService
' Example data with sales information
salesData = New List(Of SalesModel) From {
New SalesModel With {
.Date = DateTime.Parse("2024-03-01"),
.ProductName = "Product A",
.Quantity = 10,
.UnitPrice = 50.00D
},
New SalesModel With {
.Date = DateTime.Parse("2024-03-02"),
.ProductName = "Product B",
.Quantity = 15,
.UnitPrice = 40.00D
},
New SalesModel With {
.Date = DateTime.Parse("2024-03-03"),
.ProductName = "Product C",
.Quantity = 20,
.UnitPrice = 30.00D
}
}
End Sub
Public Function Sales() As IActionResult
' Renders the sales view with the sales data
Return View(salesData)
End Function
End Class
End Namespace
W powyższym kodzie, wewnątrz konstruktora, usługa IRazorViewRenderer jest przypisana do pola prywatnego _viewRenderService. Dodatkowo kontroler inicjuje listę o nazwie salesData zawierającą instancje klasy SalesModel, reprezentujące informacje o sprzedaży do celów demonstracyjnych.
Metoda akcji Sales() zwraca widok o nazwie "Sales", przekazując listę salesData jako model. Ta akcja odpowiada za renderowanie danych dotyczących sprzedaży w powiązanym widoku, umożliwiając użytkownikom wizualizację informacji o sprzedaży w formacie tabelarycznym lub dowolnym innym pożądanym układzie.

Krok 5: Wygeneruj raport PDF
W akcji GeneratePdf kontrolera użyj ChromePdfRenderer biblioteki IronPDF do renderowania widoku Razor do dokumentu PDF Report. Ustaw odpowiednie nagłówki odpowiedzi i zwróć plik PDF do klienta.
public FileContentResult GeneratePdf()
{
// Set license key for IronPDF
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
// Initialize the ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the Sales Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
// Set HTTP response header to display the PDF inline
Response.Headers.Append("Content-Disposition", "inline");
// Return the PDF document as a FileContentResult
return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
public FileContentResult GeneratePdf()
{
// Set license key for IronPDF
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
// Initialize the ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the Sales Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
// Set HTTP response header to display the PDF inline
Response.Headers.Append("Content-Disposition", "inline");
// Return the PDF document as a FileContentResult
return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
Public Function GeneratePdf() As FileContentResult
' Set license key for IronPDF
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
' Initialize the ChromePdfRenderer
Dim renderer As New ChromePdfRenderer()
' Render the Sales Razor view to a PDF document
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData)
' Set HTTP response header to display the PDF inline
Response.Headers.Append("Content-Disposition", "inline")
' Return the PDF document as a FileContentResult
Return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf")
End Function
Przyjrzyjmy się szczegółowo działaniu powyższego kodu:
- Konfiguracja klucza licencyjnego:
- License.LicenseKey = "TWÓJ-KLUCZ-LICENCJI-TUTAJ";
- Ta linia określa klucz licencyjny wymagany dla IronPDF. Jest to niezbędne do korzystania z funkcji IronPDF w aplikacji.
- Inicjalizacja renderera:
- ChromePdfRenderer renderer = new ChromePdfRenderer();
- Tworzony jest egzemplarz klasy ChromePdfRenderer. Ten renderer odpowiada za konwersję widoków Razor do formatu PDF przy użyciu silnika przeglądarki Chromium.
- Renderowanie widoku do formatu PDF:
- PdfDocument PDF = renderer.RenderRazorViewToPDF(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
- Metoda RenderRazorViewToPdf() klasy ChromePdfRenderer jest wywoływana w celu renderowania określonego widoku Razor (Views/Sales/Sales.cshtml) do dokumentu PDF. Zmienna salesData służy jako model dla widoku.
- Nagłówek Content-Disposition:
- Response.Headers.Append("Content-Disposition", "inline");
- Nagłówek odpowiedzi HTTP Content-Disposition jest ustawiony na "inline". Polecenie to nakazuje przeglądarce wyświetlenie zawartości pliku PDF bezpośrednio w oknie lub karcie przeglądarki po jego otwarciu.
- Zwrot pliku PDF:
- return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
- Treść dokumentu PDF jest zwracana jako FileContentResult. Zawiera dane binarne pliku PDF (pdf.BinaryData), określa typ MIME jako "application/pdf" i sugeruje nazwę pliku jako "SalesReport.pdf".
Ogólnie rzecz biorąc, metoda ta skutecznie koordynuje proces generowania raportu PDF z widoku Razor, dzięki czemu nadaje się do integracji z aplikacją ASP.NET w celu rozszerzenia możliwości raportowania.

Aby uzyskać szczegółowe informacje na temat tego, w jaki sposób IronPDF ułatwia proces generowania raportów PDF i innych zadań związanych z plikami PDF, odwiedź stronę dokumentacji.
Wnioski
W tym artykule omówiliśmy, w jaki sposób IronPDF upraszcza proces generowania raportów PDF w aplikacjach ASP.NET. Postępując zgodnie z powyższym przewodnikiem krok po kroku, można szybko zintegrować IronPDF z projektami ASP.NET i z łatwością generować dynamiczne raporty PDF.
Dzięki bogatemu zestawowi funkcji i płynnej integracji IronPDF umożliwia programistom tworzenie profesjonalnych raportów, które spełniają potrzeby użytkowników i firm.
IronPDF oferuje bezpłatną wersję próbną. Pobierz bibliotekę stąd i wypróbuj ją.
Często Zadawane Pytania
Jak wygenerować raport PDF w ASP.NET?
W ASP.NET można wygenerować raport PDF za pomocą IronPDF. Najpierw skonfiguruj aplikację internetową ASP.NET w Visual Studio, a następnie zainstaluj IronPDF i jego rozszerzenie MVC. Użyj klasy ChromePdfRenderer, aby przekonwertować widoki Razor na pliki PDF, a następnie skorzystaj z metody File, aby utworzyć raport.
Jakie są zalety korzystania z biblioteki PDF dla ASP.NET?
Korzystanie z biblioteki PDF, takiej jak IronPDF for .NET, upraszcza proces generowania raportów PDF i zarządzania nimi. Obsługuje ona konwersję HTML do PDF, edycję plików PDF, wypełnianie formularzy, generowanie BarCode’ów oraz zabezpieczenia dokumentów, dzięki czemu jest wszechstronna i spełnia różne potrzeby aplikacji internetowych.
Jak przekonwertować widoki Razor na PDF w ASP.NET?
Aby przekonwertować widoki Razor na PDF w ASP.NET, można użyć metody ChromePdfRenderer.RenderRazorViewToPdf biblioteki IronPDF. Pozwala to na płynną integrację generowania plików PDF z aplikacjami ASP.NET.
Jakie funkcje oferuje IronPDF do generowania raportów PDF?
IronPDF oferuje takie funkcje, jak konwersja HTML do PDF, edycja plików PDF, wypełnianie formularzy, generowanie BarCode’ów, dodawanie znaków wodnych oraz szyfrowanie i zabezpieczanie dokumentów. Funkcje te ułatwiają tworzenie dynamicznych i bezpiecznych raportów w formacie PDF.
Jak zabezpieczyć dokumenty PDF w ASP.NET?
IronPDF oferuje funkcje szyfrowania i zabezpieczeń, które pozwalają programistom zabezpieczyć dokumenty PDF za pomocą szyfrowania, haseł i ustawień uprawnień. Dzięki temu poufne informacje pozostają chronione w aplikacjach ASP.NET.
Czy dostępna jest bezpłatna wersja próbna IronPDF?
Tak, IronPDF oferuje bezpłatną wersję próbną. Bibliotekę można pobrać ze strony internetowej IronPDF i zapoznać się z jej funkcjami służącymi do generowania profesjonalnych raportów PDF w aplikacjach.
Jak dodać znak wodny do pliku PDF w aplikacji ASP.NET?
Za pomocą biblioteki IronPDF można dodać znak wodny do pliku PDF w aplikacji ASP.NET. Biblioteka udostępnia interfejsy API do nakładania znaków wodnych na dokumenty PDF, co pozwala skutecznie chronić poufne informacje lub oznaczyć dokumenty marką.
Jakie są wymagania wstępne dotyczące korzystania z IronPDF w moim projekcie ASP.NET?
Przed rozpoczęciem korzystania z IronPDF upewnij się, że posiadasz podstawową wiedzę na temat programowania w ASP.NET oraz że masz zainstalowane Visual Studio. Ponadto, aby móc korzystać z funkcji IronPDF, musisz zainstalować ten pakiet oraz jego rozszerzenie MVC w swoim projekcie.
Gdzie mogę znaleźć więcej informacji na temat IronPDF?
Aby uzyskać bardziej szczegółowe informacje na temat IronPDF i jego możliwości, można odwiedzić stronę dokumentacji na stronie internetowej IronPDF. Dokumentacja zawiera informacje na temat konfiguracji, funkcji i przykładowego kodu.
Czy IronPDF jest kompatybilny z .NET 10 i jakie korzyści z tego wynikają?
Tak, IronPDF w pełni obsługuje .NET 10 w projektach typu Web, Desktop i Console. Wykorzystuje on ulepszenia wydajności środowiska uruchomieniowego .NET 10 (takie jak zmniejszone alokacje sterty i szybszy JIT), ulepszenia języka C# oraz nowoczesne interfejsy API. Programiści mogą płynnie korzystać z metod takich jak RenderHtmlAsPdf i RenderHtmlAsPdfAsync w aplikacjach .NET 10, czerpiąc korzyści z szybkości generowania wyników, wdrażania na wielu platformach oraz bardziej przejrzystego kodu.




