Wie man Razor-Ansichten kopflos in PDFs konvertiert

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

von Chaknith Bin

Der Begriff "Headless Rendering" bezieht sich auf den Prozess der Darstellung von Webinhalten ohne grafische Benutzeroberfläche(GUI) oder Browser-Fenster. Während dieIronPDF.Extensions.Razor paket sehr nützlich ist, bietet es keine Headless-Rendering-Funktionen. Headless Rendering kann die Lücke schließen, die das IronPDF.Extensions.Razor-Paket nicht füllen kann.

Wir werden dieRazor.Templating.Core paket zur Konvertierung von cshtml(Rasiermesser-Ansichten) in HTML umwandeln und dann IronPDF verwenden, um daraus PDF-Dokumente zu erzeugen.

Dieser Artikel wurde durch das folgende YouTube-Video inspiriert:

C# NuGet-Bibliothek für PDF

Installieren mit NuGet

Install-Package IronPdf
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für PDF

Installieren mit NuGet

Install-Package IronPdf
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronPDF an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es PDF mit C#.

C# NuGet-Bibliothek für PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

Erwägen Sie die Installation der IronPDF DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronPdf.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen

Installieren Sie das Razor.Templating.Core-Paket, um Razor-Ansichten in einer ASP.NET Core-Web-App in HTML-Dokumente zu konvertieren.

Install-Package Razor.Templating.Core

Razor-Ansichten in PDFs rendern

Sie benötigen eine ASP.NET Core Web App(Modell-Ansichts-Steuerung) projekt zur Konvertierung von Ansichten in PDF-Dateien.

Eine Ansicht hinzufügen

  • Klicken Sie mit der rechten Maustaste auf den Ordner "Home". Wählen Sie "Hinzufügen" und "Ansicht hinzufügen"
  • Erstellen Sie eine leere Razor-Ansicht und nennen Sie sie "Data.cshtml".

    Ansicht hinzufügen

Datei Data.cshtml bearbeiten

Fügen Sie die HTML-Zeichenfolge hinzu, die Sie in PDF umwandeln möchten:

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>Software Engineer</td>
        <td>Experienced software engineer specializing in web development.</td>
    </tr>
    <tr>
        <td>Alice Smith</td>
        <td>Project Manager</td>
        <td>Seasoned project manager with expertise in agile methodologies.</td>
    </tr>
    <tr>
        <td>Michael Johnson</td>
        <td>Data Analyst</td>
        <td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
    </tr>
</table>
<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    <tr>
        <td>John Doe</td>
        <td>Software Engineer</td>
        <td>Experienced software engineer specializing in web development.</td>
    </tr>
    <tr>
        <td>Alice Smith</td>
        <td>Project Manager</td>
        <td>Seasoned project manager with expertise in agile methodologies.</td>
    </tr>
    <tr>
        <td>Michael Johnson</td>
        <td>Data Analyst</td>
        <td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
    </tr>
</table>
HTML

Datei Program.cs bearbeiten

Fügen Sie in der Datei "Program.cs" den folgenden Code ein. Der folgende Code verwendet die Methode "RenderAsync" aus der Bibliothek Razor.Templating.Core, um Razor Views in HTML zu konvertieren. Zweitens wird die Klasse ChromePdfRenderer instanziiert und der zurückgegebene HTML-String an die Methode "RenderHtmlAsPdf" übergeben. Benutzer können RenderingOptions verwenden, um auf eine Reihe von Funktionen zuzugreifen, wie z. B. das Hinzufügen benutzerdefiniertertext, einschließlich HTML-Kopf- und -Fußzeilen in der resultierenden PDF-Datei, die Definition benutzerdefinierter Ränder und die Anwendungseitenzahlen.

app.MapGet("/PrintPdf", async () =>
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", async () =>
{
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
    ChromePdfRenderer renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Ändern Sie die Asset-Verknüpfungen

Navigieren Sie zum Ordner "Views" -> Ordner "Shared" -> Datei "_Layout.cshtml". Ändern Sie in den Link-Tags das "~/" in "./".

Dies ist wichtig, weil "~/" nicht gut mit IronPDF zusammenarbeitet.

Das Projekt ausführen

Hier erfahren Sie, wie Sie das Projekt ausführen und ein PDF-Dokument erstellen.

Ausführen des ASP.NET Core MVC-Projekts

Ausgabe PDF

ASP.NET Core MVC-Projekt herunterladen

Sie können den vollständigen Code für diese Anleitung herunterladen. Er wird als gezippte Datei geliefert, die Sie in Visual Studio als ASP.NET Core Web App öffnen können(Modell-Ansichts-Steuerung) projekt.

Klicken Sie hier, um das Projekt herunterzuladen.

Chaknith Bin

Software-Ingenieur

Chaknith ist der Sherlock Holmes der Entwickler. Zum ersten Mal kam ihm der Gedanke, dass er eine Zukunft in der Softwareentwicklung haben könnte, als er zum Spaß an Code Challenges teilnahm. Sein Schwerpunkt liegt auf IronXL und IronBarcode, aber er ist stolz darauf, Kunden mit jedem Produkt zu helfen. Chaknith nutzt sein Wissen aus direkten Gesprächen mit Kunden, um die Produkte selbst weiter zu verbessern. Sein anekdotisches Feedback geht über Jira-Tickets hinaus und unterstützt die Produktentwicklung, die Dokumentation und das Marketing, um das Gesamterlebnis der Kunden zu verbessern.Wenn er nicht im Büro ist, lernt er über maschinelles Lernen, programmiert und wandert.