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:

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 Views 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 innerhalb 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");
});
app.MapGet("/PrintPdf", Async Function()
	IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
	IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All

	Dim html As String = Await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml")

	Dim renderer As New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, "./wwwroot")

	Return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf")
End Function)
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 diesen Leitfaden 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 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.