Aktualisiert 17. Dezember 2024
Teilen Sie:

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 des Renderns von Webinhalten ohne grafische Benutzeroberfläche (GUI) oder Browserfenster. Während das IronPdf.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 das Razor.Templating.Core-Paket verwenden, um von cshtml (Razor Views) zu html zu konvertieren, und dann IronPDF nutzen, um daraus PDF-Dokumente zu erstellen.

Dieser Artikel wurde durch das folgende YouTube-Video inspiriert:

Erste Schritte mit IronPDF

Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer


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

Install-Package Razor.Templating.Core

Razor-Ansichten in PDFs rendern

Sie benötigen ein ASP.NET Core-Webanwendungsprojekt (Model-View-Controller), um Ansichten in PDF-Dateien umzuwandeln.

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 innerhalb der Datei "Program.cs" den folgenden Code ein. Der folgende Code nutzt die RenderAsync-Methode aus der Razor.Templating.Core-Bibliothek, um Razor-Ansichten in HTML zu konvertieren. Zweitens instanziiert es die ChromePdfRenderer-Klasse und übergibt die zurückgegebene HTML-Zeichenfolge an die RenderHtmlAsPdf-Methode. Benutzer können RenderingOptions nutzen, um eine Reihe von Funktionen zu nutzen, wie das Hinzufügen von benutzerdefiniertem Text, einschließlich HTML-Kopf- und Fußzeilen im resultierenden PDF, das Festlegen benutzerdefinierter Ränder und das Anwenden von Seitenzahlen.

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");
});

Ä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 ZIP-Datei bereitgestellt, die Sie in Visual Studio als ASP.NET Core Web App (Model-View-Controller)-Projekt öffnen können.

Hier klicken, um das Projekt herunterzuladen.

Chaknith related to ASP.NET Core MVC-Projekt herunterladen

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.