Wie man Razor-Ansichten kopflos in PDFs konvertiert
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.
Wie man Razor-Ansichten kopflos in PDFs konvertiert
- Laden Sie die C#-Bibliothek zum Konvertieren von Razor Views in PDFs in ASP.NET Core Web App herunter
- Erstellen Sie eine neue Razor-Ansicht und bearbeiten Sie die Datei, um die Daten anzuzeigen
- Verwenden Sie die
RenderAsync
methode zur Konvertierung von Razor View nach HTML - Konvertieren Sie HTML in PDF mit dem
RenderHtmlAsPdf
methode - Laden Sie das Beispielprojekt für einen schnellen Start herunter
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".
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>
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)
Ä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.
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.