Jak konwertować strony Razor do formatu PDF w aplikacji internetowej ASP .NET Core

Jak przekonwertować strony Razor do PDF w aplikacji ASP.NET Core C

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

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.

  1. Install IronPDF with NuGet Package Manager

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

    // Install-Package IronPdf.Extensions.Razor
    var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml");
  3. Wdrożenie do testowania w środowisku produkcyjnym

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

    arrow pointer

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
SHELL
Biblioteka C# NuGet dla plików PDF

Zainstaluj za pomocą NuGet

Install-Package IronPdf.Extensions.Razor
Icon Quote related to Jakie paczki NuGet sa potrzebne do konwersji Razor do PDF?

Moją ulubioną biblioteką tego typu jest IronPDF. Umożliwia ona szybkie i efektywne manipulowanie plikami PDF. Posiada także wiele cennych funkcji, takich jak eksport do formatu PDF/A i cyfrowe podpisywanie dokumentów PDF.

Milan Jovanovic related to Jakie paczki NuGet sa potrzebne do konwersji Razor do PDF?

Milan Jovanovic

Microsoft MVP

Zobacz studium przypadku
Icon Quote related to Jakie paczki NuGet sa potrzebne do konwersji Razor do PDF?

IronOCR pozwala nam oszczędzić 40 000 USD rocznie na ręcznym przetwarzaniu, jednocześnie zwiększając produktywność i uwalniając zasoby do zadań o wysokim wpływie. Gorąco polecam.

Brent Matzelle related to Jakie paczki NuGet sa potrzebne do konwersji Razor do PDF?

Brent Matzelle

Dyrektor technologiczny, OPYN

Zobacz studium przypadku
Icon Quote related to Jakie paczki NuGet sa potrzebne do konwersji Razor do PDF?

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.

David Jones related to Jakie paczki NuGet sa potrzebne do konwersji Razor do PDF?

David Jones

Główny inżynier oprogramowania, Agorus Build

Zobacz studium przypadku

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

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.cshtml uż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>
HTML

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ć plik Persons.cshtml.cs.
  • Zmodyfikuj Persons.cshtml.cs przy 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
$vbLabelText   $csharpLabel

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>
HTML

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.

Visual Studio przedstawiający klasę C# PersonsModel z metodami OnGet i OnPostAsync do generowania PDF przy użyciu IronPDF

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ś.

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
Sprawdzone przez
Jeff Fritz
Jeffrey T. Fritz
Główny Menedżer Programu - Zespół .NET Community
Jeff jest również Głównym Menedżerem Programu dla zespołów .NET i Visual Studio. Jest producentem wykonawczym wirtualnej serii konferencji .NET Conf i prowadzi 'Fritz and Friends', transmisję na żywo dla deweloperów emitowaną dwa razy w tygodniu, gdzie rozmawia o technologii i pisze kod razem z widzami. Jeff pisze warsztaty, prezentacje i planuje treści dla największych wydarzeń Microsoft dla deweloperów, w tym Microsoft Build, Microsoft Ignite, .NET Conf i Microsoft MVP Summit.
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 19,936,792 | Wersja: 2026.7 właśnie wydany
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.