Wie man CSHTML kopflos mit Razor in C# in PDF konvertiert | IronPDF

Konvertieren von Razor Views in PDFs ohne Kopfhörer in C#

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

Konvertieren Sie Razor Views in C# in PDFs, indem Sie Razor.Templating.Core verwenden, um cshtml-Dateien in HTML umzuwandeln, und verwenden Sie dann die RenderHtmlAsPdf-Methode von IronPDF, um PDF-Dokumente zu generieren, ohne eine grafische Benutzeroberfläche oder ein Browserfenster zu benötigen.

Headless Rendering verarbeitet Webinhalte ohne eine grafische Benutzeroberfläche. IronPdf.Extensions.Razor ist zwar nützlich, verfügt aber nicht über Headless-Rendering-Funktionen. Dieser Leitfaden füllt diese Lücke.

Wir werden Razor.Templating.Core verwenden, um cshtml in HTML zu konvertieren, und IronPDF, um PDFs zu erzeugen.

Schnellstart: Konvertieren von Razor Views in Sekundenschnelle in PDF

Mit der Headless-Konvertierung von IronPDF können Sie Razor Views in PDF-Dateien umwandeln. Verwenden Sie IronPdf.HtmlToPdf.StaticRender.RenderHtmlAsPdf, um HTML aus Razor Views in PDFs zu rendern. Dieser Ansatz funktioniert nahtlos in ASP.NET Core-Umgebungen.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronPDF mit dem NuGet-Paketmanager.

    PM > Install-Package IronPdf

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var html = await RazorTemplateEngine.RenderAsync("Views/Template.cshtml", model); 
    new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs("output.pdf");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronPDF in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Installieren Sie Razor.Templating.Core, um Razor Views in HTML in ASP.NET Core Web Apps zu konvertieren.

# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
# Install the Razor.Templating.Core package using NuGet Package Manager
Install-Package Razor.Templating.Core
SHELL

Wie richte ich mein ASP.NET Core-Projekt für die Konvertierung von Razor in PDF ein?

Sie benötigen ein ASP.NET Core Web App (Model-View-Controller) Projekt, um Views in PDFs zu konvertieren. Die Einrichtung umfasst das Erstellen eines Projekts in Visual Studio, das Installieren von NuGet-Paketen und das Konfigurieren der Projektstruktur. Ähnliche Techniken finden Sie unter Konvertierung von CSHTML in PDF in MVC Core oder Konvertierung von CSHTML in PDF mit Razor Pages.

Warum brauche ich Razor.Templating.Core anstelle von IronPdf.Extensions.Razor?

Razor.Templating.Core bietet echtes Headless Rendering, d.h. die Umwandlung von Razor Views in HTML ohne Webkontext oder Browserfenster. Dies eignet sich für Hintergrunddienste, Konsolenanwendungen oder Umgebungen ohne Benutzeroberfläche. IronPdf.Extensions.Razor benötigt einen Web-Kontext, um zu funktionieren.

Welcher Projekttyp eignet sich am besten für die kopflose PDF-Erstellung?

ASP.NET Core Web App (Model-View-Controller)-Projekte bieten die notwendige Razor View-Infrastruktur mit flexiblen Bereitstellungsoptionen. Verwenden Sie diesen Ansatz in Hintergrunddiensten, Azure-Funktionen oder Konsolenanwendungen. Siehe Einsatz von IronPDF auf Azure für die Cloud-basierte Erstellung.

Wie installiere ich die erforderlichen NuGet-Pakete?

Installieren Sie Pakete mit NuGet Package Manager. Sie benötigen IronPDF und Razor.Templating.Core:

// Install via Package Manager Console
Install-Package IronPdf
Install-Package Razor.Templating.Core

// Or add to your .csproj file
// <PackageReference Include="IronPdf" Version="2024.x.x" />
// <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
// Install via Package Manager Console
Install-Package IronPdf
Install-Package Razor.Templating.Core

// Or add to your .csproj file
// <PackageReference Include="IronPdf" Version="2024.x.x" />
// <PackageReference Include="Razor.Templating.Core" Version="1.x.x" />
$vbLabelText   $csharpLabel

Wie erstelle und konfiguriere ich eine Razor-Ansicht für die PDF-Generierung?

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

 related to Wie erstelle und konfiguriere ich eine Razor-Ansicht für die PDF-Generierung?

Welchen HTML-Inhalt sollte ich meiner Razor-Ansicht hinzufügen?

Fügen Sie den HTML-Code hinzu, den Sie als PDF wiedergeben 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

Verwenden Sie für komplexe Layouts CSS und Druckstile, um eine perfekte PDF-Darstellung zu gewährleisten. IronPDF unterstützt moderne CSS3-Funktionen für anspruchsvolle Dokumentenlayouts.

Warum Tabellen für die Anzeige von PDF-Daten verwenden?

Tabellen bieten strukturierte, organisierte Informationen, die sich gut in gedruckte Dokumente übertragen lassen. Sie müssen plattformübergreifend einheitlich formatiert und im PDF-Format lesbar sein. Die Rendering-Engine von IronPDF kann Tabellenlayouts gut verarbeiten, wobei Ränder, Abstände und Ausrichtungen erhalten bleiben. Für fortgeschrittene Formatierungen können Sie Benutzerdefinierte Ränder verwenden, um das Layout zu optimieren.

Was sind gängige Überlegungen zur Gestaltung von PDF-Ausgaben?

Verwenden Sie für die PDF-Ausgabe druckspezifische CSS-Medienabfragen, feste Pixelwerte anstelle von relativen Einheiten und eingebettete Schriftarten für eine einheitliche Darstellung. IronPDF unterstützt Webfonts und Icon Fonts für Markenkonsistenz. Beachten Sie Seitenumbrüche für mehrseitige Dokumente und angemessene Ränder für ein professionelles Erscheinungsbild.

Wie konfiguriere ich Program.cs für Headless PDF Rendering?

Fügen Sie in "Program.cs" den folgenden Code ein. Es verwendet RenderAsync aus Razor.Templating.Core, um Razor Views in HTML zu konvertieren, instanziiert dann ChromePdfRenderer und übergibt das HTML an RenderHtmlAsPdf. Verwenden Sie RenderingOptions für eigenen Text, Kopf- und Fußzeilen, Ränder und Seitenzahlen.

app.MapGet("/PrintPdf", async () =>
{
    // Set your IronPDF license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable detailed logging for troubleshooting
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    // Render the Razor view to an HTML string
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    // Create a new instance of ChromePdfRenderer 
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Configure rendering options for professional output
    renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 20;
    renderer.RenderingOptions.MarginRight = 20;

    // Render the HTML string as a PDF document
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    // Return the PDF file as a response
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", async () =>
{
    // Set your IronPDF license key
    IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";

    // Enable detailed logging for troubleshooting
    IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

    // Render the Razor view to an HTML string
    string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");

    // Create a new instance of ChromePdfRenderer 
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Configure rendering options for professional output
    renderer.RenderingOptions.PaperSize = IronPdf.PdfPaperSize.A4;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 20;
    renderer.RenderingOptions.MarginRight = 20;

    // Render the HTML string as a PDF document
    PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");

    // Return the PDF file as a response
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
$vbLabelText   $csharpLabel

Welche Rendering-Optionen kann ich auf meine PDFs anwenden?

IronPDF bietet umfangreiche Rendering-Optionen. Fügen Sie Kopf- und Fußzeilen hinzu, legen Sie angepasste Papiergrößen fest, steuern Sie Seitenausrichtung und fügen Sie Wasserzeichen hinzu. ChromePdfRenderer bietet über 50 Eigenschaften zur Anpassung der PDF-Erzeugung.

Wie gehe ich mit Fehlern bei der PDF-Generierung um?

Implementierung einer Fehlerbehandlung für eine stabile PDF-Erzeugung:

try
{
    var html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
}
catch (Exception ex)
{
    // Log the error details
    IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}");
    return Results.Problem("Failed to generate PDF", statusCode: 500);
}
try
{
    var html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
    return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
}
catch (Exception ex)
{
    // Log the error details
    IronPdf.Logging.Logger.Log($"PDF generation failed: {ex.Message}");
    return Results.Problem("Failed to generate PDF", statusCode: 500);
}
$vbLabelText   $csharpLabel

Wann sollte ich die detaillierte Protokollierung aktivieren?

Ermöglichen Sie eine detaillierte Protokollierung während der Entwicklung und Fehlersuche. Die Protokollierung von IronPDF bietet Einblicke in das Rendering und hilft bei der Identifizierung von HTML-Parsing-, Asset-Lade- oder Konfigurationsproblemen. Für die Produktion verwenden Sie custom logging, um es in die Logging-Infrastruktur Ihrer Anwendung zu integrieren.

Navigieren Sie zu Views > Shared > "_Layout.cshtml". Ändern Sie in Link-Tags "~/" in "./", da "~/" mit IronPDF nicht gut funktioniert.

Welche anderen pfadbezogenen Probleme sollte ich beachten?

Abgesehen von der Tilde (~) müssen Sie sicherstellen, dass die Bildquellen absolute Pfade oder korrekte relative Verweise verwenden. Verwenden Sie für externe Ressourcen Basis-URLs, um sicherzustellen, dass die Inhalte korrekt geladen werden. Bilder für Azure Blob Storage finden Sie unter Bilder aus Azure Blob Storage einbetten.

Wie wirken sich statische Assets auf die PDF-Generierung aus?

Statische Elemente (CSS, JavaScript, Bilder) wirken sich auf die Leistung und Qualität der PDF-Erstellung aus. Stellen Sie sicher, dass die Assets während des Renderings zugänglich sind, verwenden Sie optimierte Bilder und erwägen Sie die Einbettung von kritischem CSS inline für ein schnelleres Rendering. Erfahren Sie mehr über Rendering Delays und Timeouts für JavaScript-lastige Inhalte.

Wie teste ich meine Headless PDF Generation?

Führen Sie das Projekt aus, um ein PDF-Dokument zu erstellen.

Visual Studio showing running ASP.NET Core MVC app with Program.cs open and successful debug output

PDF-Ausgabe

Wie soll meine endgültige PDF-Datei aussehen?

Ihre PDF-Datei sollte alle Razor View-Formatierungen beibehalten - Tabellenstrukturen, Schriftarten, Farben und Layout. Sie sollte die richtige Größe, saubere Ränder und ein professionelles Aussehen haben. Um die Qualität der Ausgabe zu überprüfen, verwenden Sie die Rasterungsfunktionen von IronPDF, um eine Vorschau der Seiten als Bilder anzuzeigen.

Wie kann ich häufige PDF-Rendering-Probleme beheben?

Häufige Probleme sind fehlende Stile, fehlerhafte Layouts oder unvollständige Inhalte. Aktivieren Sie eine detaillierte Protokollierung, überprüfen Sie Asset-Pfade und stellen Sie sicher, dass HTML korrekt validiert wird. Verwenden Sie bei komplexen Layouts die Chrome Debugging Tools, um vor der Konvertierung eine HTML-Vorschau anzuzeigen. Bei bestimmten Rendering-Problemen sollten Sie Wartezeiten verwenden, um sicherzustellen, dass der Inhalt vor dem Rendering geladen wird.

Wo kann ich ein vollständiges Arbeitsbeispiel herunterladen?

Laden Sie den vollständigen Code als gezipptes Visual Studio ASP.NET Core Web App (Model-View-Controller) Projekt herunter.

Klicken Sie hier, um das Projekt herunterzuladen.

Was sind die Voraussetzungen für die Ausführung des Beispielprojekts?

Sie benötigen Visual Studio 2019 oder höher mit .NET 6.0 SDK oder höher. Das Projekt erfordert eine Internetverbindung für die Wiederherstellung von NuGet-Paketen. Aktualisieren Sie Ihren IronPDF-Lizenzschlüssel in Program.cs, bevor Sie das Programm ausführen. Für die Bereitstellung finden Sie in der Windows-Installationsanleitung zusätzliche Anforderungen.

Wie passe ich das Beispiel für meinen Anwendungsfall an?

Das Beispiel bietet eine Grundlage für Ihre spezifischen Anforderungen. Fügen Sie dynamische Datenmodelle hinzu, implementieren Sie eine Zwischenspeicherung für häufig generierte PDFs oder integrieren Sie sie in eine bestehende Authentifizierung. Für fortgeschrittene Szenarien können Sie die asynchrone PDF-Erzeugung zur Verbesserung der Leistung oder die PDF-Komprimierung zur Verringerung der Dateigröße nutzen. Fügen Sie digitale Signaturen für die Authentizität von Dokumenten oder Passwortschutz für sensible Dokumente hinzu.

Häufig gestellte Fragen

Wie konvertiere ich Razor Views in C# in PDF ohne GUI?

Verwenden Sie Razor.Templating.Core, um cshtml-Dateien in HTML zu konvertieren, und verwenden Sie dann die RenderHtmlAsPdf-Methode von IronPDF, um PDFs ohne Probleme zu generieren. Mit diesem zweistufigen Verfahren können Sie Razor Views in PDF-Dokumente umwandeln, ohne eine grafische Benutzeroberfläche oder ein Browserfenster zu benötigen.

Wie kann ich am schnellsten eine Razor-Ansicht ohne Kopfzeile in eine PDF-Datei umwandeln?

Am schnellsten geht es mit zwei Codezeilen: Konvertieren Sie zunächst Ihre Razor-Ansicht mit RazorTemplateEngine.RenderAsync in HTML, und verwenden Sie dann die Methode ChromePdfRenderer().RenderHtmlAsPdf(html).SaveAs() von IronPDF, um die PDF-Datei zu erstellen und zu speichern.

Warum sollte ich Razor.Templating.Core anstelle von IronPdf.Extensions.Razor verwenden?

Razor.Templating.Core bietet echte Headless-Rendering-Funktionen, mit denen Sie Razor Views ohne Webkontext oder Browserfenster in HTML konvertieren können. IronPdf.Extensions.Razor ist zwar nützlich, benötigt aber einen Webkontext, um zu funktionieren, so dass Razor.Templating.Core besser für Hintergrunddienste und Konsolenanwendungen geeignet ist.

Welche Art von ASP.NET Core-Projekt benötige ich für die Headless-PDF-Generierung?

Verwenden Sie ein ASP.NET Core Web App (Model-View-Controller)-Projekt, das die erforderliche Razor View-Infrastruktur mit flexiblen Bereitstellungsoptionen bietet. Dieses Setup funktioniert gut mit IronPDF für Hintergrunddienste, Azure Functions oder Konsolenanwendungen.

Wie installiere ich die erforderlichen Pakete für die Konvertierung von Razor in PDF?

Installieren Sie Razor.Templating.Core mit dem NuGet Package Manager mit dem Befehl 'Install-Package Razor.Templating.Core'. Außerdem muss IronPDF in Ihrem Projekt installiert sein, um die Konvertierung von HTML in PDF durchzuführen.

Kann ich diesen Ansatz der Headless-PDF-Generierung in Cloud-Umgebungen verwenden?

Ja, die kopflose Razor-PDF-Konvertierung von IronPDF funktioniert hervorragend in Cloud-Umgebungen wie Azure Functions, AWS Lambda und containerisierten Anwendungen und ist damit ideal für skalierbare Dienste zur Dokumentenerstellung.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 17,012,929 | Version: 2025.12 gerade veröffentlicht