Wie man IronPDF mit Blazor zur PDF-Generierung verwendet | IronPDF

IronPDF Blazor Server Tutorial: HTML in C#35 in PDF umwandeln;

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

IronPDF ermöglicht die HTML-zu-PDF-Konvertierung in Blazor Server-Anwendungen unter Verwendung von C# mit minimaler Einrichtung, unterstützt .NET 6 und bietet PDF-Generierungsfunktionen direkt aus Ihren Blazor-Komponenten.

als-überschrift:2(Schnellstart: PDFs in Blazor Server rendern)

Nutzen Sie IronPDF in Ihren Blazor Server-Anwendungen. Dieses Beispiel zeigt, wie man HTML-Inhalte in ein PDF-Dokument umwandelt. Verwandeln Sie Ihre Blazor-Komponenten mit ein paar Zeilen Code in PDFs.

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.

    IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath);
  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

Wie erstelle ich ein neues Blazor Server Projekt?

Erstellen Sie ein neues Projekt und wählen Sie den Typ Blazor Server App. Visual Studio bietet eine Vorlage für die Erstellung von serverseitigen Blazor-Anwendungen, die .NET für die PDF-Generierung nutzen können. Das Hosting-Modell von Blazor Server führt Ihre Anwendungslogik auf dem Server aus und eignet sich daher für PDF-Generierungsszenarien, die eine serverseitige Verarbeitung erfordern.

Visual Studio Create Project Dialog mit Blazor Server App und anderen Blazor Projektvorlagen mit Beschreibungen

Was sind die Voraussetzungen für Blazor Server Apps?

Bevor Sie eine Blazor Server-Anwendung mit IronPDF erstellen, stellen Sie sicher, dass Sie Visual Studio 2022 oder höher mit dem ASP.NET- und Webentwicklungs-Workload installiert haben. Sie benötigen das .NET 6 SDK oder höher. Blazor Server-Anwendungen erfordern eine ständige Verbindung zum Server und eignen sich daher für Szenarien, in denen PDFs aus komplexen HTML-Inhalten generiert werden müssen oder wenn mit sensiblen Daten gearbeitet wird, die auf dem Server verbleiben sollten.

Welche .NET-Version sollte ich verwenden?

Um Kompatibilität und Leistung mit IronPDF in Blazor Server-Anwendungen zu gewährleisten, sollten Sie .NET 6 oder höher verwenden. IronPDF ist mit .NET Core 3.1, .NET 5, .NET 6, .NET 7 und .NET 8 kompatibel. Die neueste LTS-Version (.NET 6 oder .NET 8) bietet Stabilität und langfristigen Support. Stellen Sie bei der Bereitstellung auf Azure sicher, dass Ihr Azure App Service-Plan die von Ihnen gewählte .NET-Version unterstützt.

Wie kann ich die Projekteinstellungen konfigurieren?

Wählen Sie bei der Konfiguration Ihres Blazor Server-Projekts "Für HTTPS konfigurieren", um eine sichere Kommunikation zwischen Client und Server zu gewährleisten. Lassen Sie "Enable Docker" unmarkiert, es sei denn, Sie planen, IronPDF in Docker auszuführen. Wählen Sie für die Authentifizierung zunächst "Keine" - Sie können die Authentifizierung später bei Bedarf hinzufügen. Der Projektname sollte den C#-Namenskonventionen folgen und Leerzeichen oder Sonderzeichen vermeiden.

Wie installiere ich IronPDF in meinem Blazor Projekt?

Nachdem Sie das Projekt erstellt haben, führen Sie die folgenden Schritte aus, um die IronPDF-Bibliothek von NuGet in Visual Studio zu installieren. IronPDF bietet eine API für die Erstellung von PDFs aus HTML-Strings, URLs und vorhandenen PDF-Dokumenten.

  1. Klicken Sie im Fenster Solution Explorer in Visual Studio mit der rechten Maustaste auf References und wählen Sie Manage NuGet Packages.
  2. Wählen Sie Durchsuchen und suchen Sie nach IronPdf.
  3. Wählen Sie die neueste Version des Pakets, aktivieren Sie das Kontrollkästchen für Ihr Projekt und klicken Sie auf Installieren.

Alternativ können Sie die .NET CLI verwenden, um es zu installieren:

Install-Package IronPdf

Für Projekte, die auf bestimmte Plattformen ausgerichtet sind, benötigen Sie möglicherweise plattformspezifische Pakete. Wenn Sie zum Beispiel Linux einsetzen, lesen Sie die Linux-Installationsanleitung.

Warum NuGet Package Manager gegenüber CLI wählen?

Die grafische Benutzeroberfläche des NuGet-Paketmanagers in Visual Studio bietet eine visuelle Schnittstelle, die das Durchsuchen von Paketversionen, die Anzeige von Abhängigkeiten und die gleichzeitige Verwaltung mehrerer Projekte erleichtert. Sie hilft Entwicklern, die IronPDF noch nicht kennen, die verfügbaren Pakete und ihre Beschreibungen zu erkunden. Der CLI-Ansatz ist für erfahrene Entwickler schneller und eignet sich besser für automatisierte Build-Pipelines oder für die Arbeit mit Docker-Containern.

Welche Version von IronPDF sollte ich installieren?

Installieren Sie die neueste stabile Version von IronPDF, um Zugang zu neuen Funktionen, Leistungsverbesserungen und Sicherheitsupdates zu erhalten. Im Changelog finden Sie Details zu den letzten Updates. Wenn Sie mit einem bestehenden Projekt arbeiten, stellen Sie die Versionskompatibilität mit Ihren anderen Abhängigkeiten sicher. In Produktionsumgebungen sollten Sie vor dem Upgrade größerer Versionen gründlich testen.

Wie kann ich überprüfen, ob die Installation erfolgreich war?

Überprüfen Sie nach der Installation, ob IronPDF korrekt installiert ist, indem Sie den Ordner "Packages" im Solution Explorer überprüfen. IronPdf" sollte unter Ihren Projektabhängigkeiten aufgeführt sein. Fügen Sie using IronPdf; zu einer C#-Datei hinzu - IntelliSense sollte den Namespace erkennen. Sie können auch einen einfachen Test durchführen, indem Sie ein basisches PDF aus HTML erstellen, um zu überprüfen, ob alles korrekt funktioniert.

Wie füge ich eine neue Razor-Komponente für die PDF-Erzeugung hinzu?

Sobald IronPDF in Ihrem Blazor-Projekt installiert ist, fügen Sie eine neue Razor-Komponente hinzu. Nennen Sie dieses Tutorial "IronPdfComponent". Diese Komponente wird Benutzereingaben verarbeiten und PDFs dynamisch auf der Grundlage von HTML-Inhalten generieren. Die Komponentenarchitektur in Blazor macht es einfach, wiederverwendbare PDF-Generierungsfunktionen zu erstellen, die in Ihrer Anwendung gemeinsam genutzt werden können.

Visual Studio Dialogfeld Neues Element hinzufügen mit ausgewählter Razor-Komponente und IronPdfComponent als Dateiname

Anschließend aktualisieren Sie den Code wie folgt:

@page "/IronPdf"
@inject IJSRuntime JS

<h3>IronPdfComponent</h3>

<EditForm Model="@_InputMsgModel" id="inputText">
  <div>
    <InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
  </div>
  <div>
    <button type="button" @onclick="@SubmitHTML">Render HTML</button>
  </div>
</EditForm>
@page "/IronPdf"
@inject IJSRuntime JS

<h3>IronPdfComponent</h3>

<EditForm Model="@_InputMsgModel" id="inputText">
  <div>
    <InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
  </div>
  <div>
    <button type="button" @onclick="@SubmitHTML">Render HTML</button>
  </div>
</EditForm>
HTML
@code {

    // Model to bind user input
    private InputHTMLModel _InputMsgModel = new InputHTMLModel();

    private async Task SubmitHTML()
    {
        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

        // Create a renderer to convert HTML to PDF
        var render = new IronPdf.ChromePdfRenderer();

        // Configure rendering options for better output
        render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        render.RenderingOptions.MarginTop = 40;
        render.RenderingOptions.MarginBottom = 40;

        // Render the HTML input into a PDF document
        var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);

        var fileName = "iron.pdf";

        // Create a stream reference for the PDF content
        using var streamRef = new DotNetStreamReference(stream: doc.Stream);

        // Invoke JavaScript function to download the PDF in the browser
        await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
    }

    public class InputHTMLModel
    {
        public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
            <p>This is a sample PDF generated from HTML content in Blazor Server.</p>
            <ul>
                <li>Easy to use API</li>
                <li>High-quality rendering</li>
                <li>Full HTML5 and CSS3 support</li>
            </ul>";
    }
}
@code {

    // Model to bind user input
    private InputHTMLModel _InputMsgModel = new InputHTMLModel();

    private async Task SubmitHTML()
    {
        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

        // Create a renderer to convert HTML to PDF
        var render = new IronPdf.ChromePdfRenderer();

        // Configure rendering options for better output
        render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        render.RenderingOptions.MarginTop = 40;
        render.RenderingOptions.MarginBottom = 40;

        // Render the HTML input into a PDF document
        var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);

        var fileName = "iron.pdf";

        // Create a stream reference for the PDF content
        using var streamRef = new DotNetStreamReference(stream: doc.Stream);

        // Invoke JavaScript function to download the PDF in the browser
        await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
    }

    public class InputHTMLModel
    {
        public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
            <p>This is a sample PDF generated from HTML content in Blazor Server.</p>
            <ul>
                <li>Easy to use API</li>
                <li>High-quality rendering</li>
                <li>Full HTML5 and CSS3 support</li>
            </ul>";
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Diese Komponente verwendet die ChromePdfRenderer-Klasse für die PDF-Erzeugung. Sie können das Rendering mit verschiedenen Optionen wie Benutzerdefinierte Papiergrößen, Ränder und Kopf-/Fußzeilen anpassen.

Fügen Sie diesen JavaScript-Code zu _layout.cshtml hinzu, um das Herunterladen des von IronPDF in der Blazor-Anwendung gerenderten PDFs zu ermöglichen:

<script>
    // JavaScript function to download PDFs generated by IronPdf
    window.SubmitHTML = async (fileName, contentStreamReference) => {
        // Get the PDF content as an ArrayBuffer
        const arrayBuffer = await contentStreamReference.arrayBuffer();

        // Create a Blob from the ArrayBuffer
        const blob = new Blob([arrayBuffer]);

        // Create an object URL for the Blob
        const url = URL.createObjectURL(blob);

        // Create an anchor element to initiate the download
        const anchorElement = document.createElement("a");
        anchorElement.href = url;
        anchorElement.download = fileName ?? "download.pdf";

        // Programmatically click the anchor to start the download
        anchorElement.click();

        // Clean up by removing the anchor and revoking the object URL
        anchorElement.remove();
        URL.revokeObjectURL(url);
    };
</script>
<script>
    // JavaScript function to download PDFs generated by IronPdf
    window.SubmitHTML = async (fileName, contentStreamReference) => {
        // Get the PDF content as an ArrayBuffer
        const arrayBuffer = await contentStreamReference.arrayBuffer();

        // Create a Blob from the ArrayBuffer
        const blob = new Blob([arrayBuffer]);

        // Create an object URL for the Blob
        const url = URL.createObjectURL(blob);

        // Create an anchor element to initiate the download
        const anchorElement = document.createElement("a");
        anchorElement.href = url;
        anchorElement.download = fileName ?? "download.pdf";

        // Programmatically click the anchor to start the download
        anchorElement.click();

        // Clean up by removing the anchor and revoking the object URL
        anchorElement.remove();
        URL.revokeObjectURL(url);
    };
</script>
JAVASCRIPT

Bearbeiten Sie die Datei NavMenu.razor im Ordner Shared, um einen Navigationstab zu unserer neuen Razor-Komponente einzufügen. Fügen Sie den folgenden Code hinzu:

<div class="nav-item px-3">
    <NavLink class="nav-link" href="IronPdf">
        <span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
    </NavLink>
</div>
<div class="nav-item px-3">
    <NavLink class="nav-link" href="IronPdf">
        <span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
    </NavLink>
</div>
HTML

Wenn Sie dies alles beachtet haben, können Sie Ihre Lösung ausführen, und Sie sollten Folgendes sehen:

Blazor-Anwendung mit IronPDF-Komponente mit HTML-Eingabetextfeld und Schaltfläche

Warum JavaScript für PDF-Downloads in Blazor verwenden?

Blazor Server arbeitet mit einer SignalR-Verbindung, bei der der gesamte C#-Code auf dem Server ausgeführt wird. JavaScript-Interop ist erforderlich, um browserspezifische Aktionen wie Dateidownloads auszulösen. Die Klasse DotNetStreamReference überträgt binäre Daten vom Server zum Client, ohne die gesamte PDF-Datei auf einmal in den Speicher zu laden. Dieser Ansatz ist effizienter als die base64-Kodierung und eignet sich gut für große PDF-Dateien. Als Alternative bietet sich der Export von PDFs in Memory-Streams an.

Was sind die häufigsten Probleme bei der Implementierung von PDF-Downloads?

Zu den allgemeinen Herausforderungen gehören der Umgang mit großen Dateien, die zu einer Zeitüberschreitung bei der SignalR-Verbindung führen können, die Verwaltung gleichzeitiger PDF-Generierungsanfragen und die Sicherstellung der ordnungsgemäßen Entsorgung von Ressourcen. Um Speicherlecks zu vermeiden, sollten Sie PDF-Dokumente und Datenströme immer ordnungsgemäß entsorgen. Erwägen Sie die Implementierung von async PDF generation für eine bessere Leistung. Wenn Sie Probleme mit der Darstellung haben, finden Sie in der Dokumentation der Darstellungsoptionen Tipps zur Konfiguration.

Wie gehe ich mit großen PDF-Dateien um?

Bei großen PDF-Dateien sollten Sie die Implementierung von Fortschrittsanzeigen und Chunked Downloads in Betracht ziehen. Sie können die PDF-Größe mit Komprimierungstechniken optimieren. Legen Sie in Ihrer Blazor Server-Konfiguration entsprechende Zeitüberschreitungen fest:

services.AddServerSideBlazor()
    .AddHubOptions(options =>
    {
        options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB
        options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
    });
services.AddServerSideBlazor()
    .AddHubOptions(options =>
    {
        options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB
        options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
    });
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Bei sehr großen Dokumenten sollten Sie in Erwägung ziehen, diese zunächst auf dem Server zu speichern und einen Download-Link bereitzustellen, anstatt sie direkt zu streamen.

Wann sollte ich Stream-Referenzen gegenüber direkten Downloads verwenden?

Verwenden Sie DotNetStreamReference für PDFs unter 50 MB, die sofort heruntergeladen werden müssen. Bei größeren Dateien oder wenn Sie PDFs auf der Festplatte speichern müssen, sollten Sie erwägen, die PDF-Datei auf dem Server zu generieren und einen Download-Link bereitzustellen. Direkte Downloads eignen sich gut für Berichte und Rechnungen, während die Stapelverarbeitung oder das Zusammenführen mehrerer PDFs von der serverseitigen Speicherung profitieren könnten. Berücksichtigen Sie bei der Auswahl des Ansatzes die Speicherbeschränkungen Ihrer Anwendung und die Anforderungen an die Benutzerfreundlichkeit.

Häufig gestellte Fragen

Wie erstelle ich ein neues Blazor Server-Projekt für die PDF-Generierung?

Um ein Blazor Server-Projekt mit IronPDF zu erstellen, wählen Sie in Visual Studio als Projekttyp "Blazor Server App". Das Blazor Server-Hosting-Modell führt die Anwendungslogik auf dem Server aus und ist daher ideal für PDF-Generierungsszenarien, die eine serverseitige Verarbeitung mit IronPDF erfordern.

Was sind die Voraussetzungen für die Verwendung von Blazor Server-Anwendungen mit PDF-Generierung?

Sie benötigen Visual Studio 2022 oder höher mit dem ASP.NET- und Webentwicklungs-Workload sowie .NET 6 SDK oder höher. Blazor Server-Anwendungen erfordern eine ständige Serververbindung und eignen sich daher für die Erzeugung von PDFs aus komplexen HTML-Inhalten mit IronPDF oder für die Arbeit mit sensiblen Daten, die auf dem Server verbleiben sollten.

Welche .NET-Version sollte ich für die PDF-Erzeugung in Blazor verwenden?

Um optimale Kompatibilität und Leistung mit IronPDF in Blazor Server-Anwendungen zu gewährleisten, sollten Sie .NET 6 oder höher verwenden. IronPDF unterstützt .NET Core 3.1, .NET 5, .NET 6, .NET 7 und .NET 8. Die neuesten LTS-Versionen (.NET 6 oder .NET 8) bieten Stabilität und langfristigen Support.

Wie konfiguriere ich Projekteinstellungen für eine Blazor PDF-Anwendung?

Wählen Sie bei der Konfiguration Ihres Blazor Server-Projekts für IronPDF die Option "Configure for HTTPS" für eine sichere Kommunikation. Lassen Sie "Enable Docker" unmarkiert, es sei denn, Sie planen, IronPDF in Docker-Containern zu betreiben. Beginnen Sie mit "None" für die Authentifizierung - Sie können sie später hinzufügen. Verwenden Sie korrekte C#-Namenskonventionen ohne Leerzeichen oder Sonderzeichen.

Wie kann ich in Blazor Server schnell PDFs aus HTML generieren?

IronPDF bietet eine einfache Ein-Zeilen-Lösung für die Konvertierung von HTML in PDF in Blazor Server: IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlInhalt).SaveAs(outputPath). Damit können Sie Ihre Blazor-Komponenten mit minimalem Code in PDFs umwandeln.

Wie sieht der minimale Arbeitsablauf für die Implementierung der PDF-Erzeugung in Blazor aus?

Der minimale Arbeitsablauf besteht aus 5 Schritten: 1) Installieren der IronPDF HTML-to-PDF-Bibliothek, 2) Erstellen eines neuen Blazor-Projekts in Visual Studio, 3) Konvertieren von Webseiten per URL in PDF-Dokumente mit IronPDF, 4) Rendern der Webseiten im Webbrowser des Kunden und 5) Anzeigen der aus HTML-Strings generierten PDF-Dokumente.

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 16,685,821 | Version: 2025.12 gerade veröffentlicht