Konvertieren von Razor Pages in PDFs in ASP.NET Core C# App
IronPDF ermöglicht die nahtlose Konvertierung von Razor Pages (.cshtml Dateien) in PDF-Dokumente in ASP.NET Core Anwendungen mithilfe der RenderRazorToPdf Methode und vereinfacht so die PDF-Generierung aus Webinhalten mit voller Unterstützung für C# und HTML-Rendering.
Eine Razor Page ist eine Datei mit der Erweiterung .cshtml, die C# und HTML kombiniert, um Webinhalte zu generieren. In ASP.NET Core sind Razor Pages eine einfachere Möglichkeit, den Code für Webanwendungen zu organisieren, was sie ideal für einfache Seiten macht, die nur gelesen werden oder einfache Dateneingaben vornehmen.
Eine ASP.NET Core Web App ist eine Webanwendung, die mit ASP.NET Core, einem plattformübergreifenden Framework zur Entwicklung moderner Webanwendungen, erstellt wird.
IronPDF vereinfacht den Prozess der Erstellung von PDF-Dateien aus Razor Pages innerhalb eines ASP.NET Core Web App-Projekts. So wird die PDF-Erstellung in ASP.NET Core Web Apps zum Kinderspiel.
Schnellstart: Razor-Seiten in Sekundenschnelle in PDF konvertieren
Konvertieren Sie Ihre Razor Pages in einer ASP.NET Core-Anwendung in hochwertige PDFs. Durch die Verwendung der Methode RenderRazorToPdf können Sie CSHTML-Dateien in PDF-Dokumente umwandeln, Ihren Workflow optimieren und die Dokumentenverteilung verbessern. Dieser Leitfaden führt Sie durch die einfachen Schritte, die Sie benötigen, um dies in wenigen Minuten zu erreichen.
-
Installieren Sie IronPDF mit NuGet Package Manager
PM > Install-Package IronPdf -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
// Installationspaket IronPdf.Extensions.Razor var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml"); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronPDF in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Herunterladen der C#-Bibliothek zur Konvertierung von Razor-Seiten in PDFs in ASP.NET Core Web App
- Modellklasse für die Daten hinzufügen
- Erstellen Sie eine neue Razor-Seite und bearbeiten Sie die Datei ".cshtml", um die Daten anzuzeigen
- Bearbeiten Sie die Datei ".cs" und verwenden Sie die Methode `RenderRazorToPdf`
- Laden Sie das Beispielprojekt für einen schnellen Einstieg herunter
Einführung
Razor Pages bieten eine leistungsstarke und intuitive Möglichkeit, dynamische Webinhalte in ASP.NET Core-Anwendungen zu erstellen. In Kombination mit den Rendering-Funktionen von IronPDF können Entwickler professionelle PDF-Dokumente direkt aus ihren Webinhalten erstellen. Bei diesem Ansatz entfällt die komplexe PDF-Generierungslogik, und Sie können Ihre vorhandenen HTML- und CSS-Kenntnisse nutzen.
Die Integration von IronPDF und Razor Pages ist besonders wertvoll für die Erstellung von Berichten, Rechnungen, Zertifikaten und allen anderen Dokumenten, die eine dynamische Datendarstellung erfordern. Durch die Verwendung derselben Razor-Syntax, mit der Sie bereits vertraut sind, können Sie die Konsistenz zwischen Ihren Webansichten und PDF-Ausgaben wahren.
Welche NuGet-Pakete benötige ich für die Konvertierung von Razor in PDF?
Das Paket IronPdf.Extensions.Razor ist eine Erweiterung des Hauptpakets IronPdf . Die Pakete IronPdf.Extensions.Razor und IronPdf werden benötigt, um Razor Pages in einer ASP.NET Core Webanwendung als PDF-Dokumente zu rendern. Ausführliche Installationsanweisungen finden Sie in unserer Installationsübersicht .
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Installationspaket IronPdf.Extensions.Razor
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Installationspaket IronPdf.Extensions.Razor
Installation mit NuGet
Install-Package IronPdf.Extensions.Razor
Wie konvertiere ich Razor Pages in ASP.NET Core in PDFs?
Sie benötigen ein ASP.NET Core Web App-Projekt, um Razor Pages in PDF-Dateien zu konvertieren. Der Prozess beinhaltet das Erstellen eines Modells für Ihre Daten, das Einrichten einer Razor Page zur Anzeige dieser Daten und anschließend die Verwendung der RenderRazorToPdf Methode von IronPDF zur Generierung der PDF-Ausgabe.
Warum brauche ich eine Modellklasse für die PDF-Generierung?
Modellklassen dienen als Rückgrat der Datendarstellung in Ihren Razor Pages. Sie bieten eine strukturierte Möglichkeit, Daten von der Controller-Logik an die Ansicht zu übergeben und gewährleisten Typsicherheit und Wartbarkeit. Bei der Erstellung von PDFs sind diese Modelle sogar noch wichtiger, da sie die genaue Struktur der Daten definieren, die in Ihrem endgültigen Dokument erscheinen werden.
- Erstellen Sie einen neuen Ordner im Projekt und nennen Sie ihn "Models".
- Fügen Sie eine Standard-C#-Klasse in den Ordner ein und nennen Sie sie "Person". Diese Klasse dient als Modell für individuelle Daten. Verwenden Sie den folgenden Codeausschnitt:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-model.cs
namespace RazorPageSample.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
}
Namespace RazorPageSample.Models
Public Class Person
Public Property Id() As Integer
Public Property Name() As String
Public Property Title() As String
Public Property Description() As String
End Class
End Namespace
Wie richte ich eine Razor-Seite für die PDF-Konvertierung ein?
Fügen Sie eine leere Razor Page in den Ordner "Pages" ein und nennen Sie sie "persons.cshtml".
- Ändern Sie die neu erstellte Datei "Persons.cshtml" anhand des unten angegebenen Codebeispiels.
Der folgende Code zeigt die Informationen im Browser an. Beachten Sie, dass die Razor-Syntax eine nahtlose Integration von C#-Code in HTML ermöglicht und sich damit perfekt für die Erstellung dynamischer Inhalte eignet, die in PDF konvertiert werden können:
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
Razor-Seiten in PDFs rendern
Zunächst wird die ChromePdfRenderer-Klasse instanziiert. Es genügt, this an die Methode RenderRazorToPdf zu übergeben, um diese Razor-Seite in ein PDF-Dokument zu konvertieren.
Sie haben vollen Zugriff auf die in RenderingOptions verfügbaren Funktionen. Zu diesen Funktionen gehören die Möglichkeit, Seitenzahlen auf das erzeugte PDF anzuwenden, angepasste Ränder einzustellen und benutzerdefinierten Text sowie HTML-Kopf- und -Fußzeilen hinzuzufügen. Sie können auch Metadaten für Ihre PDFs konfigurieren, um die richtige Identifizierung und Durchsuchbarkeit der Dokumente zu gewährleisten.
- Öffnen Sie das Dropdown für die "persons.cshtml"-Datei, um die "persons.cshtml.cs"-Datei zu sehen.
- Bearbeiten Sie die "persons.cshtml.cs" mit dem unten stehenden Code.
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
Imports IronPdf.Razor
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports RazorPageSample.Models
Namespace RazorPageSample.Pages
Public Class PersonsModel
Inherits PageModel
<BindProperty(SupportsGet := True)>
Public Property Persons() As List(Of Person)
' Handle GET request to load initial data
Public Sub OnGet()
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
End Sub
' Handle POST request to convert Razor page to PDF
Public Function OnPost() As IActionResult
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
Dim renderer As New ChromePdfRenderer()
' Render Razor Page to PDF document
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
' Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline")
Return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf")
' Optionally view the output PDF in browser (uncomment below line if needed)
' return File(pdf.BinaryData, "application/pdf");
End Function
End Class
End Namespace
Die Methode RenderRazorToPdf gibt ein PdfDocument- Objekt zurück, das einer weiteren Verarbeitung und Bearbeitung unterzogen werden kann. Sie können die PDF-Datei als PDFA oder PDFUA exportieren, eine digitale Signatur auf das gerenderte PDF-Dokument anwenden oder PDF-Dokumente zusammenführen und aufteilen. Mit dieser Methode können Sie auch Seiten drehen, Anmerkungen oder Lesezeichen hinzufügen und benutzerdefinierte Wasserzeichen in Ihre PDF-Datei stempeln.
Für ein besseres Dokumentenmanagement können Sie PDFs auch komprimieren, um die Dateigröße zu verringern, ohne die Qualität zu beeinträchtigen. Dies ist besonders nützlich, wenn es um große Berichte geht oder wenn die Bandbreite ein Problem darstellt. Darüber hinaus werden die umfangreichen Bearbeitungsmöglichkeiten von IronPDF in unserem umfassenden PDF-Bearbeitungs-Tutorial dokumentiert.
Wie füge ich eine Navigation für die PDF-Erstellungsseite hinzu?
Die Navigation ist entscheidend für die Benutzererfahrung in Ihrer ASP.NET Core-Anwendung. Durch die Integration der Seite zur PDF-Erzeugung in Ihre Hauptnavigation können die Benutzer leicht auf die Funktionen zugreifen, ohne manuell URLs eingeben zu müssen.
- Navigieren Sie zu dem Ordner Pages -> Shared folder -> _Layout.cshtml. Fügen Sie das "Person"-Navigationselement nach "Home" ein.
Stellen Sie sicher, dass der Wert des Attributs asp-page exakt mit unserem Dateinamen übereinstimmt, der in diesem Fall "Persons" lautet. Dies gewährleistet die korrekte Weiterleitung innerhalb Ihrer ASP.NET Core-Anwendung:
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
Was passiert, wenn ich die PDF-Generierung ausführe?
Hier erfahren Sie, wie Sie das Projekt ausführen und ein PDF-Dokument erstellen. Wenn Sie auf den Navigationslink "Person" klicken, werden die Daten in einem Tabellenformat angezeigt. Durch Klicken auf die Schaltfläche "Drucken" wird der PDF-Erzeugungsprozess ausgelöst und die aktuelle Razor Page-Ansicht in ein herunterladbares PDF-Dokument umgewandelt.
Die generierte PDF-Datei behält das gesamte Styling und die Formatierung Ihrer Razor-Seite bei, so dass ein einheitliches Erscheinungsbild zwischen Ihrer Webansicht und der PDF-Ausgabe gewährleistet ist. Dieser Ansatz ist besonders nützlich für die Erstellung von Berichten, Rechnungen oder anderen Dokumenten, die Daten aus der Datenbank oder Geschäftslogik Ihrer Anwendung benötigen.
Wo kann ich ein komplettes ASP.NET Core Web App Beispiel herunterladen?
Sie können den vollständigen Code für diese Anleitung als gezippte Datei herunterladen, die Sie in Visual Studio als ASP.NET Core Web App-Projekt öffnen können.
Laden Sie das RazorPageSample.zip ASP.NET Core Web App Projekt herunter
Häufig gestellte Fragen
Wie kann ich Razor Pages in ASP.NET Core in PDF konvertieren?
Sie können Razor Pages in ASP.NET Core mit der RenderRazorToPdf-Methode von IronPDF in PDF konvertieren. Installieren Sie einfach das IronPDF.Extensions.Razor-Paket und verwenden Sie den ChromePdfRenderer, um Ihre .cshtml-Dateien direkt in PDF-Dokumente zu rendern.
Welche NuGet-Pakete sind für die Konvertierung von Razor in PDF erforderlich?
Sie benötigen zwei NuGet-Pakete: IronPDF.Extensions.Razor (das Erweiterungspaket) und IronPDF (das Hauptpaket). Beide Pakete sind erforderlich, um Razor Pages in ASP.NET Core Web Apps in PDF-Dokumente umzuwandeln.
Kann ich bei der Konvertierung in PDF dynamische Daten in meinen Razor Pages verwenden?
Ja, IronPDF unterstützt dynamische Daten in Razor Pages vollständig. Sie können C#-Code, Model Binding und alle Standardfunktionen der Razor-Syntax bei der Konvertierung in PDF verwenden, was es ideal für die Erstellung von Berichten, Rechnungen und Zertifikaten mit dynamischen Inhalten macht.
Welche Arten von Dokumenten kann ich mit Razor Pages erstellen?
Die IronPDF-Konvertierung von Razor in PDF eignet sich perfekt für die Erstellung verschiedener Dokumenttypen, darunter Berichte, Rechnungen, Zertifikate, Quittungen und andere Dokumente, die eine dynamische Datendarstellung erfordern, wobei das vorhandene HTML- und CSS-Styling erhalten bleibt.
Wie schnell kann ich die Konvertierung von Razor in PDF in meinem Projekt umsetzen?
Mit IronPDF können Sie die Konvertierung von Razor in PDF in wenigen Minuten durchführen. Der minimale Arbeitsablauf umfasst nur 5 Schritte: Installieren der Bibliothek, Hinzufügen einer Modellklasse, Erstellen einer Razor-Seite, Bearbeiten der .cs-Datei zur Verwendung der RenderRazorToPdf-Methode und Ausführen Ihrer Anwendung.
Wird bei der Konvertierung mein HTML- und CSS-Styling beibehalten?
Ja, IronPDF behält Ihr HTML- und CSS-Styling bei der Konvertierung von Razor Pages in PDF bei. Dadurch können Sie die Konsistenz zwischen Ihren Webansichten und PDF-Ausgaben aufrechterhalten, indem Sie dasselbe Styling und Layout verwenden, das Sie bereits erstellt haben.

