Jak przekonwertować strony Razor do PDF w aplikacji ASP.NET Core C
IronPDF umożliwia bezproblemową konwersję stron Razor (pliki .cshtml) na dokumenty PDF w aplikacjach ASP.NET Core, wykorzystując metodę RenderRazorToPdf, upraszczając generowanie PDF z treści sieciowej z pełnym wsparciem dla C# i renderowania HTML.
Strona Razor to plik o rozszerzeniu .cshtml, który łączy C# i HTML w celu generowania treści sieciowej. W ASP.NET Core strony Razor to prostszy sposob na organizacje kodu dla aplikacji webowych, czyniac je idealnym rozwiązaniem dla prostych stron, ktore sluza tylko do odczytu lub prostego wprowadzania danych.
Aplikacja webowa ASP.NET Core to aplikacja sieciowa zbudowana przy użyciu ASP.NET Core, wielopłatformowego frameworka do tworzenia nowoczesnych aplikacji webowych.
IronPDF upraszcza proces tworzenia plików PDF ze stron Razor w projekcie ASP.NET Core Web App. Dzięki temu generowanie PDF w aplikacjach ASP.NET Core Web App staje sie proste.
Szybki start: Konwersja stron Razor do PDF w kilka sekund
Przekonwertuj swoje strony Razor na wysokiej jakosci PDF w aplikacji ASP.NET Core. Za pomocą metody RenderRazorToPdf można przekształcić pliki CSHTML w dokumenty PDF, optymalizując przepływ pracy i poprawiając dystrybucję dokumentów. Ten przewodnik prowadzi cie przez proste kroki potrzebne do osiagniecia tego w kilka minut.
-
Install IronPDF with NuGet Package Manager
-
Skopiuj i uruchom ten fragment kodu.
// Install-Package IronPdf.Extensions.Razor var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml"); -
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 biblioteke C# do konwersji stron Razor do PDF w aplikacji ASP.NET Core Web App
- Dodaj klasę modelu dla danych
- Utworz nowa strone Razor i edytuj plik ".cshtml", aby wyświetlic dane
- Edytuj plik ".cs" i uzyj metody
RenderRazorToPdf - Pobierz przykładowy projekt, aby szybko rozpocząć pracę
Wprowadzenie
Strony Razor zapewniają potężny i intuicyjny sposob na budowanie dynamicznych treści webowych w aplikacjach ASP.NET Core. Połączone z możliwosciami renderowania IronPDF, deweloperzy mogą tworzyć profesjonalne dokumenty PDF bezpośrednio z ich treści webowych. To podejście usuwa skomplikowana logike generowania PDF i pozwala na wykorzystanie juz znanych umiejetnosci HTML i CSS.
Integracja miedzy IronPDF a stronami Razor jest szczegółnie cenna przy generowaniu raportow, faktur, certyfikatow i innych dokumentów wymagajacych dynamicznej prezentacji danych. Używając tej samej skladni Razor, z która jestes juz zaznajomiony, możesz utrzymac spojnosc miedzy widokami webowymi a wyjsciami PDF.
Jakie paczki NuGet sa potrzebne do konwersji Razor do PDF?
Pakiet IronPdf.Extensions.Razor jest rozszerzeniem głównego pakietu IronPdf. Oba pakiety IronPdf.Extensions.Razor i IronPdf są potrzebne do renderowania stron Razor w dokumenty PDF w aplikacji sieciowej ASP.NET Core. Szczegółowe instrukcje dotyczące instalacji można znaleźć w naszym przewodniku instalacyjnym.
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Install-Package IronPdf.Extensions.Razor
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Install-Package IronPdf.Extensions.Razor
Zainstaluj za pomocą NuGet
Install-Package IronPdf.Extensions.Razor
IronPDF.Extensions.Razor/IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.
Jak przekonwertować strony Razor do PDF w ASP.NET Core?
Będziesz potrzebowal projektu ASP.NET Core Web App, aby przekonwertować strony Razor na pliki PDF. Proces obejmuje stworzenie modelu dla Twoich danych, skonfigurowanie strony Razor do wyświetlania tych danych oraz użycie metody RenderRazorToPdf IronPDF do generowania PDF.
Dlaczego potrzebuje klasy modelu do generowania PDF?
Klasy modeli sluza jako podstawa reprezentacji danych w twoich stronach Razor. Zapewniaja one strukturalny sposob przekazywania danych z logiki kontrolera do widoku, zapewniając bezpieczeństwo typow i łatwość konserwacji. Podczas generowania PDF, modele te staja sie jeszcze bardziej kluczowe, gdyz definiuja dokładna strukture danych, ktore pojawia sie w koncowym dokumencie.
- Utworz nowy folder w projekcie i nazwij go "Models".
- Dodaj standardową klasę C# do folderu i nazwij ją
Person. Ta klasa będzie służyć jako model danych indywidualnych. Użyj poniższego fragmentu kodu:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-model.cs
namespace RazorPageSample.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
}
Namespace RazorPageSample.Models
Public Class Person
Public Property Id() As Integer
Public Property Name() As String
Public Property Title() As String
Public Property Description() As String
End Class
End Namespace
Jak skonfigurować strone Razor do konwersji na PDF?
Dodaj pustą stronę Razor do folderu "Pages" i nazwij ją persons.cshtml.
- Zmodyfikuj nowo utworzony plik
Persons.cshtmlużywając poniższego przykładu kodu.
Poniższy kod wyświetla informacje w przeglądarce. Zauwaz, jak skladnia Razor pozwala na bezproblemowa integracje kodu C# z HTML, co czyni ja idealnym rozwiązaniem do generowania dynamicznej zawartości, która można przekonwertować do PDF:
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
Renderuj strony Razor do PDF
Następnie, kod poniżej najpierw tworzy instancje klasy ChromePdfRenderer. Przekazywanie this do metody RenderRazorToPdf wystarczy, aby przekształcić tę stronę Razor w dokument PDF.
Masz pełny dostep do funkcji dostępnych w RenderingOptions. Funkcje te obejmuja możliwosc zastosowania numeracji stron w generowanym dokumencie PDF, ustawianie niestandardowych marginesow, oraz dodawanie niestandardowego tekstu oraz nagłówków i stopki HTML. Można również skonfigurować metadane dla swoich PDF, aby zapewnic wlasciwa identyfikacje dokumentu i możliwosc wyszukiwania.
- Otwórz rozwijane menu dla pliku
Persons.cshtml, aby zobaczyć plikPersons.cshtml.cs. - Zmodyfikuj
Persons.cshtml.csprzy użyciu poniższego kodu.
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
Imports IronPdf.Razor
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports RazorPageSample.Models
Namespace RazorPageSample.Pages
Public Class PersonsModel
Inherits PageModel
<BindProperty(SupportsGet := True)>
Public Property Persons() As List(Of Person)
' Handle GET request to load initial data
Public Sub OnGet()
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
End Sub
' Handle POST request to convert Razor page to PDF
Public Function OnPost() As IActionResult
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
Dim renderer As New ChromePdfRenderer()
' Render Razor Page to PDF document
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
' Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline")
Return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf")
' Optionally view the output PDF in browser (uncomment below line if needed)
' return File(pdf.BinaryData, "application/pdf");
End Function
End Class
End Namespace
Metoda RenderRazorToPdf zwraca obiekt PdfDocument, który może zostać poddany dalszemu przetwarzaniu i edytowaniu. Możesz eksportować PDF jako PDFA lub PDFUA, zastosować cyfrowy podpis do wygenerowanego dokumentu PDF lub łączyć i dzielić dokumenty PDF. Metoda umożliwia równiez obracanie stron, dodawanie adnotacji lub zakladek, oraz dodawanie własnych znakow wodnych do twojego PDF.
W celu zwiekszonego zarządzania dokumentami można również kompresowac PDF w celu zmniejszenia rozmiaru pliku bez utraty jakosci. Jest to szczegółnie przydatne w przypadku pracy z duzymi raportami lub gdy przepustowosc jest ograniczeniem. Dodatkowo, rozbudowane możliwosci edycji, jakie zapewnia IronPDF, sa opisane w naszym obszernym kursie na temat edycji PDF.
Jak dodac nawigacje dla strony generowania PDF?
Nawigacja jest kluczowa dla doswiadczenia użytkownika w twojej aplikacji ASP.NET Core. Integrujac strone generowania PDF do głównej nawigacji, użytkownicy mogą łatwo uzyskać dostep do funkcjonalności bez recznego wpisywania adresow URL.
- Przejdz do folderu Pages -> Shared folder -> _Layout.cshtml. Umiesc element nawigacyjny "Person" za "Home".
Upewnij się, że wartość atrybutu asp-page dokładnie odpowiada naszej nazwie pliku, która w tym przypadku to Persons. To zapewnia poprawne kierowanie w twojej aplikacji ASP.NET Core:
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
Co sie dzieje, gdy uruchamiam generowanie PDF?
To pokazuje, jak uruchomić projekt i wygenerować dokument PDF. Gdy klikniesz łącze nawigacyjne "Person", zobaczysz dane wyświetlone w formacie tabeli. Klikniecie przycisku "Print" uruchamia proces generowania PDF, konwertując obecny widok strony Razor do pobieranego dokumentu PDF.
Wygenerowany PDF zachowuje całe stylizacje i formatowanie z twojej strony Razor, zapewniając spojny wyglad miedzy widokiem webowym a wyjsciem PDF. To podejście jest szczegółnie przydatne przy generowaniu raportow, faktur, lub jakiegokolwiek dokumentu, ktory wymaga danych z bazy danych czy logiki biznesowej aplikacji.
Gdzie mogę pobrac kompletny przykład aplikacji ASP.NET Core Web App?
Możesz pobrac kompletny kod tego przewodnika jako spakowany plik, ktory możesz otworzyć w Visual Studio jako projekt ASP.NET Core Web App.
Pobierz projekt aplikacji ASP.NET Core Web App RazorPageSample.zip
Często Zadawane Pytania
Jak przekonwertować strony Razor na PDF w ASP.NET Core?
Możesz przekonwertować strony Razor na PDF w ASP.NET Core używając metody RenderRazorToPdf IronPDF. Wystarczy zainstalować pakiet IronPdf.Extensions.Razor i użyć ChromePdfRenderer, aby renderować pliki .cshtml bezpośrednio do dokumentów PDF.
Jakie pakiety NuGet są wymagane do konwersji Razor do PDF?
Potrzebujesz dwóch pakietów NuGet: IronPdf.Extensions.Razor (pakiet rozszerzeń) i IronPdf (główny pakiet). Oba pakiety są wymagane do renderowania stron Razor do dokumentów PDF w aplikacjach webowych ASP.NET Core.
Czy mogę używać dynamicznych danych w moich stronach Razor przy konwersji na PDF?
Tak, IronPDF w pełni obsługuje dynamiczne dane na stronach Razor. Możesz używać kodu C#, wiązania modelu i wszystkich standardowych funkcji składni Razor przy konwersji na PDF, co czyni go idealnym narzędziem do generowania raportów, faktur i certyfikatów z dynamiczną zawartością.
Jakie typy dokumentów mogę generować ze stron Razor?
Konwersja Razor na PDF IronPDF jest doskonała do generowania różnych typów dokumentów, w tym raportów, faktur, certyfikatów, paragonów i innych dokumentów wymagających dynamicznej prezentacji danych z zachowaniem istniejących stylów HTML i CSS.
Jak szybko mogę wdrożyć konwersję Razor na PDF w moim projekcie?
Możesz wdrożyć konwersję Razor na PDF w ciągu kilku minut z IronPDF. Minimalny przepływ pracy obejmuje zaledwie 5 kroków: instalacja biblioteki, dodanie klasy modelu, utworzenie strony Razor, edytowanie pliku .cs, aby użyć metody RenderRazorToPdf i uruchomienie aplikacji.
Czy konwersja zachowuje moje style HTML i CSS?
Tak, IronPDF zachowuje Twoje style HTML i CSS przy konwersji stron Razor na PDF. Pozwala to na utrzymanie spójności pomiędzy widokami webowymi i wynikami PDF z użyciem tych samych stylów i układów, które już stworzyłeś.

