Jak przekonwertować Razor do formatu PDF w Blazor Server przy użyciu języka C#

Konwersja Razor do formatu PDF w Blazor Server za pomocą języka C# PdfDocument

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

Konwertuj komponenty Razor do formatu PDF w Blazor Server przy użyciu metody RenderRazorComponentToPdf biblioteki 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 komponenty Razor w pliki PDF za pomocą kilku wierszy kodu. Postępuj zgodnie z tym przewodnikiem, aby zintegrować konwersję Razor do PDF ze swoim projektem przy minimalnej konfiguracji i elastycznych opcjach dostosowywania.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. 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");
  3. Wdrożenie do testowania w środowisku produkcyjnym

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

    arrow pointer

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

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 za pomocą szablonów projektów programu Visual Studio lub korzystając z interfejsu CLI platformy .NET 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
$vbLabelText   $csharpLabel

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 pliki PDF. Dostęp do tej metody uzyskuje się poprzez instancjonowanie klasy `. Metoda zwraca obiektPdfDocument` do eksportu lub dalszej modyfikacji.

Zwrócony plik 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 okna wyświetlania dla projektów responsywnych oraz opóźnienia w wykonywaniu kodu JavaScript dla treści dynamicznych.

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 "Folderu współdzielonego" i otwórz NavMenu.razor. Dodaj sekcję, która otworzy nasz komponent Razor, Person. Naszym komponentem Person będzie druga opcja.
<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 podświetlenie 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.

Visual Studio debugging Blazor app with PDF generation code using `ChromePdfRenderer` and Razor components

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

Jaki jest najszybszy sposób na konwersję komponentu Razor na PDF w Blazor Server?

Najszybszym sposobem jest użycie metody RenderRazorComponentToPdf IronPDF. Zaledwie jedną linią kodu możesz przekonwertować dowolny komponent Razor na PDF: var pdf = new IronPdf.ChromePdfRenderer().RenderRazorComponentToPdf(new Dictionary { {"persons",personsList} }).SaveAs("component-to-pdf.pdf");

Jakie pakiety NuGet są potrzebne do konwersji Razor na PDF w Blazor Server?

Potrzebujesz pakietu IronPdf.Extensions.Blazor, który automatycznie zawiera podstawową bibliotekę IronPDF jako zależność. Zainstaluj go używając: Install-Package IronPdf.Extensions.Blazor

Czy mogę dodać niestandardowe nagłówki i stopki podczas konwersji komponentów Razor na PDF?

Tak, IronPDF zapewnia pełne opcje dostosowywania nagłówków, stopek i formatu strony podczas korzystania z metody RenderRazorComponentToPdf do konwersji twoich komponentów Razor.

Dlaczego Blazor Server jest zalecany do generowania PDF z komponentów Razor?

Aplikacje Blazor Server działają na serwerze i renderują aktualizacje UI przez połączenie SignalR, co czyni je idealnymi do generowania PDF. Ta architektura zapewnia, że renderowanie z IronPDF odbywa się po stronie serwera, zapewniając spójne rezultaty niezależnie od przeglądarki klienta lub urządzenia.

Czy muszę refaktorować moje istniejące komponenty Razor, aby przekonwertować je na PDF?

Nie, pakiet IronPdf.Extensions.Blazor pozwala przekonwertować istniejące komponenty Razor na PDF bez potrzeby rozległego refaktoryzowania. Rozszerzenie zapewnia punkty integracji, które rozumieją model komponentów Blazor.

Jak przekazać dane do mojego komponentu Razor podczas konwersji na PDF?

Mozna przekazywac dane korzystajac z parametru Dictionary w metodzie RenderRazorComponentToPdf. Na przyklad: new Dictionary { {"persons", personsList} }, gdzie "persons" to nazwa parametru, a personsList to twoje dane.

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.