Konwersja Razor do formatu PDF w Blazor Server przy użyciu języka C
Konwertuj komponenty Razor na PDF w Blazor Server przy użyciu metody RenderRazorComponentToPdf z IronPDF. Przekształcaj komponenty interfejsu użytkownika C# w pliki PDF przy minimalnym nakładzie kodu i pełnej możliwości dostosowania nagłówków, stopek oraz formatowania stron.
Szybki start: Konwersja komponentu Razor do formatu PDF w kilka minut
Konwertuj komponenty Razor do formatu PDF w aplikacjach Blazor Server przy użyciu IronPDF. Metoda RenderRazorComponentToPdf przekształca twoje komponenty Razor w PDF za pomocą kilku linii kodu. Postępuj zgodnie z tym przewodnikiem, aby zintegrować konwersję Razor do PDF ze swoim projektem przy minimalnej konfiguracji i elastycznych opcjach dostosowywania.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
// Install-Package IronPdf.Extensions.Blazor var pdf = new IronPdf.ChromePdfRenderer() .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} }) .SaveAs("component-to-pdf.pdf"); -
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 bibliotekę C# do konwersji Razor do formatu PDF w Blazor Server
- Dodaj klasę modelu dla danych
- Utwórz nowy komponent Razor i użyj metody
RenderRazorComponentToPdf - Dodaj sekcję do menu po lewej stronie, aby uzyskać dostęp do nowego komponentu Razor
- Pobierz przykładowy projekt, aby szybko rozpocząć pracę
Jakie paczki NuGet sa potrzebne do konwersji Razor do PDF?
Pakiet IronPdf.Extensions.Blazor rozszerza główny pakiet IronPdf. Oba pakiety są wymagane do renderowania komponentów Razor do dokumentów PDF w aplikacji Blazor Server. To rozszerzenie zapewnia punkty integracji dla aplikacji Blazor Server, umożliwiając konwersję istniejących komponentów Razor do formatu PDF bez konieczności przeprowadzania rozległej refaktoryzacji.
Instalacja IronPdf.Extensions.Blazor automatycznie obejmuje podstawową bibliotekę IronPDF jako zależność. Pakiet rozszerzeń dodaje metody, takie jak RenderRazorComponentToPdf, które rozumieją model komponentów Blazor i prawidłowo renderują komponenty z powiązanymi danymi. Aby uzyskać optymalną wydajność i dostęp do najnowszych funkcji, należy korzystać z najnowszych wersji obu pakietów. Sprawdź dziennik zmian, aby zapoznać się z aktualizacjami i ulepszeniami.
Install-Package IronPdf.Extensions.Blazor
Zainstaluj za pomocą NuGet
Install-Package IronPdf.Extensions.Blazor
Jak renderować komponenty Razor do plików PDF w Blazor Server?
Do konwersji komponentów Razor do formatu PDF wymagany jest projekt aplikacji Blazor Server. Aplikacje Blazor Server działają na serwerze i renderują aktualizacje interfejsu użytkownika przez połączenie SignalR, dzięki czemu nadają się do generowania plików PDF, gdzie potrzebne jest przetwarzanie po stronie serwera. Architektura ta zapewnia renderowanie plików PDF na serwerze, zapewniając spójne wyniki niezależnie od przeglądarki lub urządzenia klienta.
Przed rozpoczęciem upewnij się, że masz zainstalowany pakiet .NET SDK oraz program Visual Studio 2019 lub nowszy z modułami ASP.NET i do tworzenia stron internetowych. Utwórz nową aplikację Blazor Server App poprzez szablony projektów Visual Studio lub używając .NET CLI z dotnet new blazorserver. Szczegółowe instrukcje instalacji i wymagania dotyczące poszczególnych platform można znaleźć w sekcji Przegląd instalacji.
Jakiej struktury klas modelowych powinienem użyć?
Dodaj standardową klasę C# o nazwie PersonInfo. Ta klasa służy jako model do przechowywania informacji o osobach. Wstaw następujący kod:
:path=/static-assets/pdf/content-code-examples/how-to/razor-to-pdf-blazor-server-model.cs
namespace BlazorSample.Data
{
public class PersonInfo
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
}
Namespace BlazorSample.Data
Public Class PersonInfo
Public Property Id() As Integer
Public Property Name() As String
Public Property Title() As String
Public Property Description() As String
End Class
End Namespace
Ten model przedstawia strukturę danych przekazaną do komponentu Razor i wyrenderowaną w pliku PDF. IronPDF współpracuje z dowolnym modelem obiektowym C#, od prostych POCO po złożone modele Entity Framework. Projektując modele do generowania plików PDF, należy wziąć pod uwagę sposób wyświetlania danych w docelowym dokumencie i odpowiednio dostosować właściwości struktury.
Jak zaimplementować komponent Razor do generowania plików PDF?
Użyj metody RenderRazorComponentToPdf, aby przekonwertować komponenty Razor na PDF. Uzyskaj dostęp do tej metody poprzez utworzenie instancji klasy ChromePdfRenderer. Metoda zwraca obiekt PdfDocument do eksportu lub dalszej modyfikacji.
Zwracany obiekt PdfDocument obsługuje dodatkowe modyfikacje, w tym konwersję do formatów PDF/A lub PDF/UA. Możesz łączyć lub dzielić dokument, obracać strony oraz dodawać adnotacje lub zakładki. W razie potrzeby zastosuj niestandardowe znaki wodne.
Dodaj komponent Razor o nazwie Person.razor. Wprowadź następujący kod:
@page "/Person"
@using BlazorSample.Data;
@using IronPdf;
@using IronPdf.Extensions.Blazor;
<h3>Person</h3>
@code {
// A parameter to receive a list of persons from the parent component.
[Parameter]
public IEnumerable<PersonInfo> persons { get; set; }
// Dictionary to hold parameters that will be passed to the PDF renderer.
public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>();
protected override async Task OnInitializedAsync()
{
// Initialize the persons list with some sample data.
persons = new List<PersonInfo>
{
new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
}
private async void PrintToPdf()
{
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Apply text footer to the PDF pages.
renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} - {time}",
DrawDividerLine = true,
RightText = "Page {page} of {total-pages}",
Font = IronSoftware.Drawing.FontTypes.Arial,
FontSize = 11
};
Parameters.Add("persons", persons);
// Render Razor component to PDF and save it.
PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);
File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
}
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in persons)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<button class="btn btn-primary" @onclick="PrintToPdf">Print to Pdf</button>
Ta metoda zapewnia dostęp do wszystkich funkcji RenderingOptions. Dodaj nagłówki i stopki tekstowe oraz HTML, uwzględnij numery stron oraz dostosuj wymiary i układ strony. RenderingOptions obsługuje niestandardowe marginesy, ustawienia viewport dla responsywnych projektów i opóźnienia wykonania JavaScript dla dynamicznej treści.
W przypadku złożonych układów lub frameworków CSS, takich jak Bootstrap, należy wykorzystać możliwości responsywnego renderowania CSS, aby zapewnić prawidłowe wyświetlanie plików PDF na stronach o różnych rozmiarach.
Jak dodać nawigację do mojego komponentu Razor?
- Przejdź do "Shared folder" i otwórz
NavMenu.razor. Dodaj sekcję, która otworzy nasz komponent Razor,Person. Nasz komponentPersonbędzie drugą opcją.
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
<nav class="flex-column">
<div class="nav-item px-3">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="oi oi-home" aria-hidden="true"></span> Home
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="Person">
<span class="oi oi-list-rich" aria-hidden="true"></span> Person
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="counter">
<span class="oi oi-plus" aria-hidden="true"></span> Counter
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="fetchdata">
<span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
</NavLink>
</div>
</nav>
</div>
Ta konfiguracja nawigacji integruje się z systemem routingu Blazor, umożliwiając użytkownikom dostęp do funkcji generowania plików PDF z głównego menu nawigacyjnego aplikacji. Komponent NavLink zapewnia prawidłowe wyróżnienie aktywnej trasy.
Jak wygląda proces generowania plików PDF?
Uruchom projekt i wygeneruj dokument PDF. Kliknij przycisk "Drukuj do pliku PDF". IronPDF przetwarza komponent Razor, konwertuje go do formatu HTML i renderuje jako plik PDF przy użyciu silnika renderującego opartego na przeglądarce Chrome. Dzięki temu zachowana jest taka sama wierność wizualna, jak w nowoczesnych przeglądarkach internetowych.
Wygenerowany plik PDF zostanie zapisany w katalogu wyjściowym projektu. Dostosuj lokalizację zapisu, wdroż bezpośrednie pobieranie z przeglądarki lub przechowuj pliki PDF w chmurze, np. w usłudze Azure Blob Storage. W przypadku aplikacji produkcyjnych należy zaimplementować obsługę błędów i mechanizm przekazywania informacji zwrotnych użytkownikom w sytuacjach, gdy generowanie pliku PDF może się nie powieść lub przekroczyć przewidywany czas trwania.
Gdzie mogę pobrać kompletny działający przykład?
Pobierz kompletny kod do tego przewodnika w postaci pliku ZIP. Otwórz go w Visual Studio jako projekt aplikacji Blazor Server. Próbka zawiera wszystkie zależności, konfiguracje i przykładowy kod, aby od razu rozpocząć konwersję Razor do PDF w aplikacjach Blazor.
Pobierz przykładowy projekt Blazor do konwersji Razor na PDF
Gotowy, aby sprawdzić, co jeszcze możesz zrobić? Sprawdź naszą stronę z samouczkami tutaj: Konwersja PDF-ów
W przypadku bardziej zaawansowanych scenariuszy zapoznaj się z naszym samouczkiem dotyczącym Blazor, który obejmuje dodatkowe wzorce integracji i najlepsze praktyki dotyczące korzystania z IronPDF w aplikacjach Blazor.
Często Zadawane Pytania
What is the fastest way to convert a Razor component to PDF in Blazor Server?
The fastest way is using IronPDF's RenderRazorComponentToPdf method. With just one line of code, you can convert any Razor component to PDF: var pdf = new IronPdf.ChromePdfRenderer().RenderRazorComponentToPdf(new Dictionary { {"persons",personsList} }).SaveAs("component-to-pdf.pdf");
Which NuGet packages are required for Razor to PDF conversion in Blazor Server?
You need the IronPdf.Extensions.Blazor package, which automatically includes the core IronPDF library as a dependency. Install it using: Install-Package IronPdf.Extensions.Blazor
Can I add custom headers and footers when converting Razor components to PDF?
Yes, IronPDF provides full customization options for headers, footers, and page formatting when using the RenderRazorComponentToPdf method to convert your Razor components.
Why is Blazor Server recommended for PDF generation from Razor components?
Blazor Server applications run on the server and render UI updates over a SignalR connection, making them ideal for PDF generation. This architecture ensures IronPDF's rendering happens server-side, providing consistent results regardless of client browser or device.
Do I need to refactor my existing Razor components to convert them to PDF?
No, the IronPdf.Extensions.Blazor package enables you to convert existing Razor components into PDFs without extensive refactoring. The extension provides integration points that understand Blazor's component model.
How do I pass data to my Razor component when converting to PDF?
You can pass data using a Dictionary parameter in the RenderRazorComponentToPdf method. For example: new Dictionary { {"persons", personsList} } where "persons" is the parameter name and personsList is your data.

