Wie man Razor in PDF bei Blazor Server mit C# konvertiert

Konvertieren von Razor in PDF in Blazor Server mit C#

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

Konvertieren Sie Razor-Komponenten in Blazor Server mit der Methode RenderRazorComponentToPdf von IronPDF in PDF. Umwandlung von C#-UI-Komponenten in PDF-Dateien mit minimalem Code und vollständiger Anpassung von Kopf- und Fußzeilen sowie der Seitenformatierung.

als-Überschrift:2(Schnellstart: Konvertieren Sie eine Razor-Komponente in Minuten zu PDF)

Konvertieren Sie Razor-Komponenten in Blazor Server-Anwendungen mit IronPDF in PDF. Die Methode RenderRazorComponentToPdf wandelt Ihre Razor-Komponenten mit wenigen Zeilen Code in PDFs um. Folgen Sie dieser Anleitung, um die Konvertierung von Razor in PDF in Ihr Projekt zu integrieren - mit minimalem Aufwand und flexiblen Anpassungsoptionen.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronPDF mit dem NuGet-Paketmanager.

    PM > Install-Package IronPdf

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    // Install-Package IronPdf.Extensions.Blazor
    var pdf = new IronPdf.ChromePdfRenderer()
        .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} })
        .SaveAs("component-to-pdf.pdf");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronPDF in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Welche NuGet-Pakete benötige ich für die Konvertierung von Razor in PDF?

Das Paket IronPdf.Extensions.Blazor erweitert das Hauptpaket IronPdf. Beide Pakete werden benötigt, um Razor-Komponenten in einer Blazor Server App in PDF-Dokumente umzuwandeln. Diese Erweiterung bietet Integrationspunkte für Blazor Server Anwendungen, die es Ihnen ermöglichen, bestehende Razor-Komponenten ohne umfangreiches Refactoring in PDFs zu konvertieren.

Die Installation von IronPdf.Extensions.Blazor schließt automatisch die IronPDF-Kernbibliothek als Abhängigkeit ein. Das Erweiterungspaket fügt Methoden wie RenderRazorComponentToPdf hinzu, die das Komponentenmodell von Blazor verstehen und Komponenten mit gebundenen Daten korrekt rendern. Für eine optimale Leistung und die neuesten Funktionen sollten Sie die neueste Version beider Pakete verwenden. Überprüfen Sie das Changelog auf Updates und Verbesserungen.

Install-Package IronPdf.Extensions.Blazor
C# NuGet-Bibliothek für PDF

Installation mit NuGet

Install-Package IronPdf.Extensions.Blazor

Wie rendere ich Razor-Komponenten in PDFs in Blazor Server?

Ein Blazor Server App-Projekt ist erforderlich, um Razor-Komponenten zu PDFs zu konvertieren. Blazor Server-Anwendungen laufen auf dem Server und rendern UI-Updates über eine SignalR-Verbindung, wodurch sie sich für die PDF-Erzeugung eignen, wenn eine serverseitige Verarbeitung erforderlich ist. Diese Architektur stellt sicher, dass das PDF-Rendering auf dem Server erfolgt, so dass unabhängig vom Client-Browser oder -Gerät einheitliche Ergebnisse erzielt werden.

Bevor Sie beginnen, stellen Sie sicher, dass Sie das .NET SDK installiert haben und Visual Studio 2019 oder höher mit der ASP.NET- und Webentwicklungsauslastung verwenden. Erstellen Sie eine neue Blazor Server App über die Projektvorlagen von Visual Studio oder über die .NET CLI mit dotnet new blazorserver. Ausführliche Installationsanweisungen und plattformspezifische Anforderungen finden Sie in der Installationsübersicht.

Welche Modellklassenstruktur sollte ich verwenden?

Fügen Sie eine Standard-C#-Klasse namens PersonInfo hinzu. Diese Klasse dient als Modell für die Speicherung von Personeninformationen. Fügen Sie den folgenden Code ein:

: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; }
    }
}
$vbLabelText   $csharpLabel

Dieses Modell stellt die Datenstruktur dar, die an Ihre Razor-Komponente übergeben und in der PDF-Datei wiedergegeben wird. IronPDF funktioniert mit jedem C#-Objektmodell, von einfachen POCOs bis hin zu komplexen Entity-Framework-Modellen. Berücksichtigen Sie beim Entwurf von Modellen für die PDF-Generierung, wie die Daten im endgültigen Dokument angezeigt werden, und strukturieren Sie die Eigenschaften entsprechend.

Wie implementiere ich die Razor-Komponente für die PDF-Erzeugung?

Verwenden Sie die RenderRazorComponentToPdf-Methode, um Razor-Komponenten in PDFs zu konvertieren. Greifen Sie auf diese Methode zu, indem Sie die Klasse ChromePdfRenderer instanziieren. Die Methode gibt ein PdfDocument-Objekt zum Exportieren oder zur weiteren Bearbeitung zurück.

Das zurückgegebene PdfDocument unterstützt zusätzliche Modifikationen einschließlich der Konvertierung in die Formate PDF/A oder PDF/UA. Sie können das Dokument zusammenführen oder teilen, Seiten drehen und Anmerkungen oder Lesezeichen hinzufügen. Fügen Sie bei Bedarf eigene Wasserzeichen ein.

Fügen Sie eine Razor-Komponente namens Person.razor hinzu. Geben Sie den folgenden Code ein:

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

Diese Methode ermöglicht den Zugriff auf alle RenderingOptions-Funktionen. Fügen Sie Text- und HTML-Kopf- und Fußzeilen hinzu, fügen Sie Seitenzahlen ein und passen Sie Seitengröße und Layout an. RenderingOptions unterstützt angepasste Ränder, Viewport-Einstellungen für responsive Designs und JavaScript-Ausführungsverzögerungen für dynamische Inhalte.

Bei komplexen Layouts oder CSS-Frameworks wie Bootstrap sollten Sie die responsive CSS-Rendering-Funktionen erkunden, um sicherzustellen, dass PDFs in verschiedenen Seitengrößen korrekt angezeigt werden.

Wie füge ich eine Navigation zu meiner Razor-Komponente hinzu?

  • Navigieren Sie zum "Gemeinsamen Ordner" und öffnen Sie NavMenu.razor. Fügen Sie den Abschnitt hinzu, der unsere Razor-Komponente Person öffnen wird. Unsere Person Komponente wird die zweite Option sein.
<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>

Dieses Navigations-Setup lässt sich in das Routing-System von Blazor integrieren, so dass Benutzer über das Hauptnavigationsmenü Ihrer Anwendung auf die PDF-Erstellungsfunktionen zugreifen können. Die NavLink-Komponente sorgt für die richtige Hervorhebung der aktiven Route.

Wie sieht der Prozess der PDF-Erstellung aus?

Führen Sie das Projekt aus und erzeugen Sie ein PDF-Dokument. Klicken Sie auf die Schaltfläche "In PDF drucken". IronPDF verarbeitet Ihre Razor-Komponente, konvertiert sie in HTML und rendert sie mit seiner Chrome-basierten Rendering-Engine als PDF. Dadurch wird die gleiche visuelle Wiedergabetreue wie in modernen Webbrowsern beibehalten.

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

Die generierte PDF-Datei wird im Ausgabeverzeichnis Ihres Projekts gespeichert. Passen Sie den Speicherort an, implementieren Sie direkte Browser-Downloads, oder speichern Sie PDFs in einem Cloud-Speicher wie Azure Blob Storage. Für Produktionsanwendungen sollten Sie eine Fehlerbehandlung und ein Benutzerfeedback für Szenarien implementieren, in denen die PDF-Generierung fehlschlagen oder die erwartete Dauer überschreiten könnte.

Wo kann ich ein vollständiges Arbeitsbeispiel herunterladen?

Laden Sie den vollständigen Code für diesen Leitfaden als gezippte Datei herunter. Öffnen Sie ihn in Visual Studio als Blazor Server App-Projekt. Das Beispiel enthält alle Abhängigkeiten, Konfigurationen und Beispielcode, um sofort mit der Konvertierung von Razor in PDF in Blazor-Anwendungen zu beginnen.

Laden Sie das Blazor-Beispielprojekt für die Konvertierung von Razor zu PDF herunter

Bereit zu sehen, was Sie sonst noch tun können? Schauen Sie sich unsere Tutorial-Seite hier an: PDFs konvertieren

Für fortgeschrittenere Szenarien siehe unser Blazor Tutorial, das zusätzliche Integrationsmuster und Best Practices für die Verwendung von IronPDF in Blazor Anwendungen behandelt.

Häufig gestellte Fragen

Was ist der schnellste Weg, um eine Razor-Komponente in Blazor Server in PDF zu konvertieren?

Am schnellsten geht es mit der RenderRazorComponentToPdf-Methode von IronPDF. Mit nur einer Zeile Code können Sie jede Razor-Komponente in PDF umwandeln: var pdf = new IronPdf.ChromePdfRenderer().RenderRazorComponentToPdf(new Dictionary { {"persons",personsList} }).SaveAs("component-to-pdf.pdf");

Welche NuGet-Pakete werden für die Konvertierung von Razor in PDF in Blazor Server benötigt?

Sie benötigen das IronPdf.Extensions.Blazor-Paket, das automatisch die IronPDF-Kernbibliothek als Abhängigkeit enthält. Installieren Sie es mit: Install-Package IronPdf.Extensions.Blazor

Kann ich bei der Konvertierung von Razor-Komponenten in PDF benutzerdefinierte Kopf- und Fußzeilen hinzufügen?

Ja, IronPDF bietet vollständige Anpassungsoptionen für Kopf- und Fußzeilen und die Seitenformatierung, wenn Sie die RenderRazorComponentToPdf-Methode zur Konvertierung Ihrer Razor-Komponenten verwenden.

Warum wird Blazor Server für die PDF-Erzeugung aus Razor-Komponenten empfohlen?

Blazor Server-Anwendungen laufen auf dem Server und rendern UI-Updates über eine SignalR-Verbindung, wodurch sie sich ideal für die PDF-Erstellung eignen. Diese Architektur stellt sicher, dass das Rendering von IronPDF serverseitig erfolgt und unabhängig vom Browser oder Gerät des Clients konsistente Ergebnisse liefert.

Muss ich meine bestehenden Razor-Komponenten umgestalten, um sie in PDF zu konvertieren?

Nein, das IronPdf.Extensions.Blazor-Paket ermöglicht es Ihnen, bestehende Razor-Komponenten ohne umfangreiches Refactoring in PDFs zu konvertieren. Die Erweiterung bietet Integrationspunkte, die das Komponentenmodell von Blazor verstehen.

Wie übergebe ich Daten an meine Razor-Komponente bei der Konvertierung in PDF?

Sie können Daten mithilfe eines Dictionary-Parameters in der Methode RenderRazorComponentToPdf übergeben. Zum Beispiel: new Dictionary { {"persons", personsList} } wobei "persons" der Parametername und "personsList" Ihre Daten sind.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 17,012,929 | Version: 2025.12 gerade veröffentlicht