Zum Fußzeileninhalt springen
IRONPDF NUTZEN
Blazor HTML zu PDF mit IronPDF

Erstellen Sie eine PDF-Datei mit dem Blazor-Tutorial

IronPDF, eine renommierte C#-Bibliothek, arbeitet mit Blazor-Anwendungen. Diese Überprüfung führt Sie durch die Verwendung von IronPDF, um einen PDF-Bericht in eine Blazor-Anwendung einzubetten und seine nahtlose Integration und Effektivität zu demonstrieren.

1. IronPDF-Funktionen

Entwickler können mit der robusten IronPDF for .NET PDF-Bibliothek schnell ein PDF-Dokument erstellen, lesen und verarbeiten. IronPDF verfügt über eine eingebaute Chrome-Engine und bietet eine Fülle von praktischen und leistungsstarken Funktionen. Dazu gehören die Möglichkeit, HTML5, JavaScript, CSS und Bilder in PDFs zu konvertieren, die Möglichkeit, einzigartige Kopf- und Fußzeilen zu PDF-Dokumenten hinzuzufügen und die Fähigkeit, PDFs genau so zu erzeugen, wie sie in einem Webbrowser erscheinen. IronPDF unterstützt verschiedene Webtechnologien, einschließlich HTML, ASPX, Razor Pages und MVC-Frameworks.

Die wichtigsten Merkmale von IronPDF sind wie folgt:

2. was ist Blazor?

Blazor ist ein Webanwendungs-Framework, das es ermöglicht, clientseitige Webanwendungen in C# und HTML unter Verwendung von Web Assembly zu erstellen.

Web Assembly-Apps werden in einem binären Anweisungsformat an den Browser gesendet, das mit nahezu nativer Geschwindigkeit arbeiten kann. Dies hat neue Möglichkeiten für Sprachen wie C# geschaffen, innerhalb des Browsers zu laufen.

Erstellen eines neuen Projekts in Visual Studio

Um zu beginnen, öffnen Sie die Microsoft Visual Studio-Anwendung und wählen Sie "Neues Projekt" aus dem Datei-Menü. Dann wählen Sie "Blazor Server App".

PDF-Datei mit Blazor Tutorial erstellen, Abbildung 1: Erstellen eines neuen Projekts in Visual Studio Erstellen eines neuen Projekts in Visual Studio

Geben Sie einen Projektnamen ein und wählen Sie einen Dateipfad. Klicken Sie dann auf die Schaltfläche Erstellen.

PDF-Datei mit Blazor Tutorial erstellen, Abbildung 2: Auswahl des Namens und Speicherorts der neuen Blazor-Anwendung Auswahl des Namens und Speicherorts der neuen Blazor-Anwendung

Wählen Sie das gewünschte .NET Framework (wir werden in diesem Tutorial .NET 6.0 verwenden), wie im unteren Screenshot gezeigt:

PDF-Datei mit Blazor Tutorial erstellen, Abbildung 3: Erstellen eines neuen Projekts in Visual Studio mit dem .NET 6.0 Framework Erstellen eines neuen Projekts in Visual Studio mit dem .NET 6.0 Framework

Microsoft Visual Studio wird jetzt die Struktur für diese Blazor-Anwendung generieren.

Fügen Sie die IronPDF-Bibliothek zu diesem Projekt hinzu.

3. IronPDF-Bibliothek installieren

Die IronPDF-Bibliothek kann auf vier Arten heruntergeladen und installiert werden:

  • Mit dem NuGet-Paketmanager von Visual Studio
  • Mit der Befehlszeile von Visual Studio
  • Direkt von der NuGet-Website herunterladen
  • Direkt von der IronPDF-Website herunterladen

3.1 Verwendung des NuGet-Paketmanagers von Visual Studio

Visual Studio bietet den NuGet-Paketmanager, um beim Installieren von Bibliotheken direkt in Projekte zu helfen. Der untenstehende Screenshot zeigt, wie man den NuGet-Paket-Manager öffnet.

PDF-Datei mit Blazor Tutorial erstellen, Abbildung 4: Zugriff auf den NuGet-Paketmanager von Visual Studio Zugriff auf den NuGet-Paketmanager von Visual Studio

Verwenden Sie das Suchfeld unter der Registerkarte "Durchsuchen", um nach "IronPDF" zu suchen, wie im unteren Screenshot gezeigt:

PDF-Datei mit Blazor Tutorial erstellen, Abbildung 5: Suche nach der IronPDF-Bibliothek in der NuGet-Paketmanager-GUI Suche nach der IronPDF-Bibliothek in der NuGet-Paketmanager-GUI

Das Bild oben zeigt die Liste der zugehörigen Suchergebnisse. Wählen Sie die erforderlichen Optionen, um das Paket in Ihrem Projekt zu installieren.

3.2 Verwendung der Visual Studio Befehlszeile

Gehen Sie in Visual Studio zu Tools > NuGet Paketmanager > Package Manager Console

Geben Sie die folgende Zeile in die Registerkarte "Package Manager Console" ein:

Install-Package IronPdf

Das Paket wird jetzt im aktuellen Projekt heruntergeladen und installiert.

PDF-Datei mit Blazor Tutorial erstellen, Abbildung 6: Die IronPDF-Bibliothek mit der NuGet Package Manager Console installieren Die IronPDF-Bibliothek mit der NuGet Package Manager Console installieren

3.3 Direktes Herunterladen von der NuGet-Website

Der dritte Weg, die IronPDF-Bibliothek zu installieren, besteht darin, das NuGet-Paket direkt von der Website herunterzuladen.

Navigieren Sie zur NuGet-Website für IronPDF.

  • Klicken Sie auf die Option "Paket herunterladen" im Menü auf der rechten Seite.
  • Öffnen Sie das heruntergeladene Paket auf Ihrem Dateisystem. Es wird automatisch installiert.
  • Laden Sie die Lösung neu und beginnen Sie, sie in Ihrem Projekt zu verwenden.

3.4 Direktes Herunterladen von der IronPDF-Website

Besuchen Sie die IronPDF-Website, um das IronPDF-Paket direkt herunterzuladen.

Befolgen Sie nach dem Herunterladen diese Schritte, um das Paket zu Ihrem Projekt hinzuzufügen:

  • Klicken Sie mit der rechten Maustaste auf das Projekt im Lösungsfenster.
  • Wählen Sie die Option "Hinzufügen" > "Verweis" und navigieren Sie dann zu dem Ort, an dem Sie die Bibliothek zuvor heruntergeladen haben.
  • Klicken Sie auf OK, um die Bibliothek als Verweis hinzuzufügen.

4. PDF-Dokumente in der Blazor Server App erstellen

Die Blazor-App in diesem Tutorial wird IronPDF verwenden, um den HTML-Inhalt einer Webseite per URL abzurufen und in ein PDF-Dokument zu konvertieren.

Geben Sie den folgenden Quellcode in die .razor-Datei ein, die im Projekt enthalten ist.

@using IronPdf

@code {
    /// <summary>
    /// This method exports data by converting a URL to a PDF file and initiating its download.
    /// </summary>
    public async Task ExportData()
    {
        try
        {
            string fileName = "Demo.pdf";
            var renderer = new ChromePdfRenderer();

            // Render the contents of the URL as a PDF document
            var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

            // Save the PDF using a JavaScript function
            await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
        }
    }
}
@using IronPdf

@code {
    /// <summary>
    /// This method exports data by converting a URL to a PDF file and initiating its download.
    /// </summary>
    public async Task ExportData()
    {
        try
        {
            string fileName = "Demo.pdf";
            var renderer = new ChromePdfRenderer();

            // Render the contents of the URL as a PDF document
            var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

            // Save the PDF using a JavaScript function
            await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
        }
    }
}
[using] ReadOnly Property code() As IronPdf
	''' <summary>
	''' This method exports data by converting a URL to a PDF file and initiating its download.
	''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public async Task ExportData()
'	{
'		try
'		{
'			string fileName = "Demo.pdf";
'			var renderer = New ChromePdfRenderer();
'
'			' Render the contents of the URL as a PDF document
'			var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
'
'			' Save the PDF using a JavaScript function
'			await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
'		}
'		catch (Exception ex)
'		{
'			' Handle any exceptions that may occur
'			Console.@Error.WriteLine(string.Format("Error in ExportData: {0}", ex.Message));
'		}
'	}
End Property
$vbLabelText   $csharpLabel

Das obige Codebeispiel verwendet zwei Methoden, um PDF-Dokumente aus HTML zu generieren. Die erste ist die RenderUrlAsPdf-Methode von IronPDF, die den HTML-Inhalt von einer angegebenen URL herunterlädt und in ein PDF-Format umwandelt.

Die zweite Methode ist die statische JSRuntime.InvokeVoidAsync-Methode, die eine JavaScript-Funktion im Rahmen der Webseite aufruft, die den PDF-Inhalt als Datei auf dem Dateisystem des Clients speichert.

Diese JavaScript-Funktion ist unten aufgeführt:

<script type="text/javascript">
    /**
     * Saves the PDF data as a file on the client's system.
     * @param {string} filename - The name of the file to be created.
     * @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
     */
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            // Download the document in Microsoft Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
<script type="text/javascript">
    /**
     * Saves the PDF data as a file on the client's system.
     * @param {string} filename - The name of the file to be created.
     * @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
     */
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            // Download the document in Microsoft Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
HTML

Die obige JavaScript-Funktion empfängt die Base64-Daten von Blazor und wandelt sie in einen Blob um, bevor sie an einem clientseitigen Speicherort gespeichert wird.

Alternativ kann auch die SaveAs-Methode der ChromePdfRenderer-Klasse verwendet werden, um PDF-Dokumente im lokalen Speicher des Browsers zu speichern.

5. Ein PDF-Dokument aus einem HTML-String erstellen

Der folgende Codeausschnitt zeigt, wie man einen HTML-String in ein Dokument verwandelt.

@using IronPdf

@code {
    /// <summary>
    /// Demonstrates turning an HTML string into a PDF document.
    /// </summary>
    public void GeneratePdfFromHtmlString()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");

        // You can save the generated PDF locally
        pdf.SaveAs("HelloWorld.pdf");
    }
}
@using IronPdf

@code {
    /// <summary>
    /// Demonstrates turning an HTML string into a PDF document.
    /// </summary>
    public void GeneratePdfFromHtmlString()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");

        // You can save the generated PDF locally
        pdf.SaveAs("HelloWorld.pdf");
    }
}
[using] ReadOnly Property code() As IronPdf
	''' <summary>
	''' Demonstrates turning an HTML string into a PDF document.
	''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public void GeneratePdfFromHtmlString()
'	{
'		var renderer = New ChromePdfRenderer();
'		var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");
'
'		' You can save the generated PDF locally
'		pdf.SaveAs("HelloWorld.pdf");
'	}
End Property
$vbLabelText   $csharpLabel

Das vorangestellte Beispiel verwendet die RenderHtmlAsPdf-Instanzmethode, um einen HTML-String in PDF-Inhalt zu transformieren. Darüber hinaus kann die SaveAs-Methode in den zuvor beschriebenen Verfahren verwendet werden, um diesen Inhalt auf dem Computer des Clients zu speichern.

PDF-Datei mit Blazor Tutorial erstellen, Abbildung 7: Die Blazor-PDF-Generierungsanwendung wurde in diesem Tutorial erstellt Die Blazor-PDF-Generierungsanwendung, die in diesem Tutorial erstellt wurde

Der obige Screenshot zeigt die Webanwendung, die in diesem Tutorial entwickelt wurde. Ein Klick auf den Download-Button löst den C#-Code aus, um den PDF-Inhalt zu erzeugen, und eine JavaScript-Funktion, um den PDF-Inhalt auf Client-Seite herunterzuladen.

Abschluss

Dieser Artikel zeigte, wie man eine Blazor-Webanwendung entwickelt, die die IronPDF-Bibliothek verwendet, um PDF-Dateien von Webseiten zu generieren.

IronPDF ist nicht Open Source, jedoch ermöglicht ein kostenloser Testschlüssel, dass Sie es in der Produktion ohne Wasserzeichen verwenden können.

Häufig gestellte Fragen

Wie kann ich eine PDF-Bibliothek mit einer Blazor-Serveranwendung integrieren?

Sie können eine PDF-Bibliothek mit einer Blazor-Serveranwendung integrieren, indem Sie IronPDF verwenden. Erstellen Sie zunächst ein Blazor-Projekt in Visual Studio und installieren Sie dann die IronPDF-Bibliothek über den NuGet-Paket-Manager oder die Befehlszeile. IronPDF ermöglicht es Ihnen, PDF-Dokumente nahtlos aus HTML-Inhalten zu generieren.

Welche Methoden stehen zur Verfügung, um PDFs aus HTML in einer Blazor-Anwendung zu generieren?

In einer Blazor-Anwendung können Sie die RenderUrlAsPdf-Methode von IronPDF verwenden, um Webseiten-URLs in PDFs zu konvertieren, oder RenderHtmlAsPdf, um PDFs direkt aus HTML-Strings zu generieren. Diese Methoden bieten Flexibilität bei der Erstellung von PDF-Dokumenten aus verschiedenen HTML-Quellen.

Wie kann ich eine PDF-Datei im Dateisystem des Clients in einer Blazor-Anwendung speichern?

Um eine PDF-Datei im Dateisystem des Clients in einer Blazor-Anwendung zu speichern, können Sie eine JavaScript-Funktion verwenden, um die PDF-Daten in einen Blob zu konvertieren und einen Download auszulösen. IronPDF bietet die notwendigen Werkzeuge, um das PDF zu generieren, das dann mit clientseitigem JavaScript behandelt werden kann.

Was ist der Prozess zum Erstellen eines Blazor-Serverprojekts in Visual Studio?

Das Erstellen eines Blazor-Serverprojekts in Visual Studio beinhaltet die Auswahl von 'Neues Projekt' im Datei-Menü, die Auswahl von 'Blazor Server App', die Angabe des Projekt-Namens und -Standorts sowie die Auswahl der entsprechenden .NET Framework-Version. Diese Einrichtung ermöglicht es Ihnen, zusätzliche Bibliotheken wie IronPDF für erweiterte Funktionalitäten zu integrieren.

Kann ich JavaScript- und CSS-Inhalte innerhalb von HTML mit dieser Bibliothek in PDF konvertieren?

Ja, Sie können JavaScript- und CSS-Inhalte innerhalb von HTML mit IronPDF in PDF konvertieren. Es unterstützt die Darstellung von HTML5-, CSS- und JavaScript-Inhalten, sodass Sie umfassende PDF-Dokumente erstellen können, die das Layout und das Styling der ursprünglichen Webseiten beibehalten.

Was sind einige Schritte zur Fehlerbehebung, wenn die PDF-Erstellung in Blazor nicht wie erwartet funktioniert?

Wenn die PDF-Erstellung in Blazor nicht wie erwartet funktioniert, stellen Sie sicher, dass die IronPDF-Bibliothek korrekt im Projekt installiert ist. Überprüfen Sie, ob der HTML-Inhalt korrekt formatiert und zugänglich ist. Zusätzlich überprüfen Sie eventuelle JavaScript-Fehler in der Browser-Konsole, die den PDF-Darstellungsprozess beeinflussen könnten.

Wie kann ich sicherstellen, dass meine PDF-Dokumente Kopf- und Fußzeilen enthalten, wenn ich eine PDF-Bibliothek verwende?

Um sicherzustellen, dass Ihre PDF-Dokumente Kopf- und Fußzeilen enthalten, wenn Sie IronPDF verwenden, können Sie die Rendering-Optionen konfigurieren, um benutzerdefinierte Kopf- und Fußzeilen hinzuzufügen. Dies ermöglicht es Ihnen, zusätzliche Informationen wie Seitennummern oder Titel im PDF-Ausgang hinzuzufügen.

Ist es möglich, PDFs für Seiten hinter Authentifizierung in einer Blazor-Anwendung zu generieren?

Ja, IronPDF kann PDFs für Seiten generieren, die in einer Blazor-Anwendung durch eine Authentifizierung geschützt sind. Sie müssen die Authentifizierungs-Cookies oder -Token verwalten, um auf die geschützten Inhalte zugreifen zu können, bevor Sie diese mithilfe der Funktionen der Bibliothek in ein PDF konvertieren.

Ist IronPDF mit .NET 10 kompatibel und welche Vorteile bietet die Verwendung mit .NET 10?

Ja, IronPDF ist vollständig mit .NET 10 kompatibel – es funktioniert sofort ohne zusätzliche Anpassungen, Shims oder veraltete APIs. .NET 10 bringt Aktualisierungen für ASP.NET Core und Blazor mit sich, darunter verbesserte Leistung, optimiertes Abhängigkeitsmanagement, verbesserte Framework-Referenzverwaltung und optimierte JavaScript-Isolation. All dies kommt Workflows zur PDF-Generierung mit Razor Pages, URLs oder HTML-Inhalten zugute.

Wie verbessert die Verwendung von IronPDF mit .NET 10 die Leistung und Laufzeiteffizienz?

Die Verwendung von IronPDF mit .NET 10 nutzt verschiedene Laufzeitverbesserungen, darunter die Devirtualisierung von Array-Schnittstellenmethoden, die Escape-Analyse für Strukturen, verbesserte JIT-Optimierungen und die Unterstützung von AVX-512-Befehlen. Diese Verbesserungen reduzieren die Speicherbelegung, senken den Aufwand für die automatische Speicherbereinigung und beschleunigen Aufgaben wie das Rendern von HTML und die PDF-Bearbeitung.

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