Wie man Sicht in PDF umwandelt in ASP.NET Core C#

Wie man in ASP.NET MVC mit C# Ansichten in PDFs konvertiert

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

IronPDF ermöglicht die Konvertierung von ASP.NET MVC-Ansichten in PDF-Dokumente mit der Methode ChromePdfRenderer.RenderView() mit nur wenigen Zeilen Code. Das IronPdf.Extensions.Mvc.Framework-Paket bietet eine nahtlose Integration in ASP.NET MVC-Projekte zur Darstellung von CSHTML-Ansichten als PDFs.

Eine Ansicht ist eine Komponente im ASP.NET Framework, die zum Generieren von HTML-Markup in Webanwendungen verwendet wird. Es ist Teil des Model-View-Controller (MVC)-Musters, das häufig in ASP.NET MVC- und ASP.NET Core MVC-Anwendungen verwendet wird. Ansichten sind dafür verantwortlich, Daten an den Benutzer zu präsentieren, indem sie HTML-Inhalte dynamisch rendern. Die Leistungsfähigkeit der Chrome PDF Rendering Engine von IronPDF sorgt dafür, dass Ihre Ansichten pixelgenau gerendert werden, wobei alle Formatierungen, Layouts und interaktiven Elemente erhalten bleiben.

ASP.NET Webanwendung (.NET Framework) MVC ist ein von Microsoft bereitgestelltes Webanwendungs-Framework. Es folgt einem strukturierten Architektur-Muster, bekannt als Model-View-Controller (MVC), um die Entwicklung von Webanwendungen zu organisieren und zu straffen.

  • Modell: Verwalten von Daten, Geschäftslogik und Datenintegrität.
  • Ansicht: Präsentiert die Benutzeroberfläche und rendert Informationen.
  • Controller: Bearbeitet Benutzereingaben, verarbeitet Anfragen und koordiniert die Interaktionen zwischen Modell und Ansicht.

IronPDF vereinfacht den Prozess der Erstellung von PDF-Dateien aus Ansichten innerhalb eines ASP.NET MVC-Projekts. Dies macht die PDF-Erstellung in ASP.NET MVC einfach und direkt. Egal, ob Sie Rechnungen, Berichte oder andere Dokumente aus Ihren Webansichten generieren, IronPDF bietet Ihnen die Werkzeuge, die Sie für eine professionelle PDF-Ausgabe benötigen. Eine umfassende Installationsanleitung finden Sie auf der Seite Installationsübersicht.

als-Überschrift:2(Schnellstart: ASP.NET MVC Ansicht mühelos in PDF konvertieren)

Lernen Sie, wie Sie Ihre ASP.NET MVC Ansichten schnell in PDF-Dokumente umwandeln, indem Sie IronPDF verwenden. Mit nur wenigen Zeilen Code können Sie Ihre CSHTML-Ansichten in hochqualitative PDFs rendern und die Funktionalität Ihrer Anwendung verbessern. IronPDF vereinfacht den Prozess und macht ihn für Entwickler aller Niveaus zugänglich. Beginnen Sie mit der Integration von IronPDF in Ihre ASP.NET Core-Projekte, um problemlos PDFs aus Ihren Ansichten zu erstellen.

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.

    // Install-Package IronPdf.Extensions.Razor
    var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.ControllerContext);
  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

Welches Erweiterungspaket benötige ich?

Warum ist für IronPDF ein Erweiterungspaket erforderlich?

Das IronPdf.Extensions.Mvc.Framework Paket ist eine Erweiterung des Hauptpakets IronPdf. Sowohl das IronPdf.Extensions.Mvc.Framework als auch das IronPDF-Paket werden benötigt, um Ansichten in PDF-Dokumente in ASP.NET MVC zu rendern. Diese Trennung ermöglicht eine optimierte Funktionalität, die speziell auf das MVC-Framework zugeschnitten ist, während die zentralen PDF-Rendering-Funktionen erhalten bleiben.

Wie installiert man das Erweiterungspaket?

Install-Package IronPdf.Extensions.Mvc.Framework
C# NuGet-Bibliothek für PDF

Installation mit NuGet

Install-Package IronPdf.Extensions.Mvc.Framework

Wie kann ich Ansichten in PDFs rendern?

Welchen Projekttyp brauche ich?

Für die Konvertierung von Views in PDF-Dateien benötigen Sie ein ASP.NET Web Application (.NET Framework) MVC-Projekt. IronPDF unterstützt verschiedene MVC-Versionen und bietet umfangreiche Rendering-Optionen zur Anpassung der PDF-Ausgabe an Ihre Anforderungen.

Wie kann ich eine Modellklasse hinzufügen?

Wo soll ich das Modell erstellen?

  • Navigieren Sie zum Ordner "Models"
  • Erstellen Sie eine neue C#-Klassendatei mit dem Namen "Person" Diese Klasse dient als Modell zur Darstellung individueller Daten. Verwenden Sie den folgenden Code:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-mvc-framework-model.cs
namespace ViewToPdfMVCSample.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}
$vbLabelText   $csharpLabel

Wie kann ich den Controller bearbeiten?

Welchen Code sollte ich dem Controller hinzufügen?

Navigieren Sie zum Ordner "Controllers" und öffnen Sie die Datei "HomeController". Fügen Sie die Aktion "Personen" mit folgendem Code hinzu:

Im bereitgestellten Code wird zuerst die ChromePdfRenderer-Klasse erstellt. Um die Methode RenderView zu verwenden, übermitteln Sie ihr einen HttpContext, geben Sie den Pfad zur Datei "Persons.cshtml" an und stellen Sie eine List<Person> mit den erforderlichen Daten bereit. Beim Rendern der Ansicht können Sie RenderingOptions verwenden, um die Ränder anzupassen, Benutzerdefinierten Text und HTML-Kopf- und Fußzeilen hinzuzufügen und Seitenzahlen auf das resultierende PDF-Dokument anzuwenden.

Hinweis:Das PDF-Dokument kann mit folgendem Code auf den Rechner heruntergeladen werden: File(pdf.BinaryData, "application/pdf", "viewToPdfMVC.pdf").

using IronPdf;
using System.Collections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;

namespace ViewToPdfMVCSample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        // GET: Person
        public ActionResult Persons()
        {
            // Create a list of Person objects
            var 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" }
            };

            if (HttpContext.Request.HttpMethod == "POST")
            {
                // Define the path to the View file
                var viewPath = "~/Views/Home/Persons.cshtml";

                // Instantiate the ChromePdfRenderer
                ChromePdfRenderer renderer = new ChromePdfRenderer();

                // Render the view to a PDF document
                PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

                // Set headers to view the PDF in-browser
                Response.Headers.Add("Content-Disposition", "inline");

                // Return the generated PDF file
                return File(pdf.BinaryData, "application/pdf");
            }
            return View(persons);
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}
using IronPdf;
using System.Collections.Generic;
using System.Web.Mvc;
using ViewToPdfMVCSample.Models;

namespace ViewToPdfMVCSample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        // GET: Person
        public ActionResult Persons()
        {
            // Create a list of Person objects
            var 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" }
            };

            if (HttpContext.Request.HttpMethod == "POST")
            {
                // Define the path to the View file
                var viewPath = "~/Views/Home/Persons.cshtml";

                // Instantiate the ChromePdfRenderer
                ChromePdfRenderer renderer = new ChromePdfRenderer();

                // Render the view to a PDF document
                PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

                // Set headers to view the PDF in-browser
                Response.Headers.Add("Content-Disposition", "inline");

                // Return the generated PDF file
                return File(pdf.BinaryData, "application/pdf");
            }
            return View(persons);
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";
            return View();
        }
    }
}
$vbLabelText   $csharpLabel

Wie kann ich die PDF-Rendering-Optionen anpassen?

Für fortgeschrittene Szenarien können Sie die PDF-Ausgabe mit verschiedenen Rendering-Optionen anpassen. Hier ist ein Beispiel mit benutzerdefinierten Rändern, Papierformat und zusätzlichen Einstellungen:

// Advanced rendering with custom options
public ActionResult PersonsAdvanced()
{
    var persons = GetPersonsList();

    if (HttpContext.Request.HttpMethod == "POST")
    {
        var viewPath = "~/Views/Home/Persons.cshtml";

        // Configure the renderer with custom options
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Set custom rendering options
        renderer.RenderingOptions.MarginTop = 40;
        renderer.RenderingOptions.MarginBottom = 40;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        // Set custom paper size
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
        renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}";
        renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
        renderer.RenderingOptions.TextHeader.FontSize = 12;

        renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
        renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial;
        renderer.RenderingOptions.TextFooter.FontSize = 10;
        renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

        // Enable JavaScript execution if needed
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.RenderDelay = 500; // Wait for JS to execute

        // Render the view to PDF
        PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

        // Optional: Apply compression to reduce file size
        pdf.CompressImages(60);

        Response.Headers.Add("Content-Disposition", "inline");
        return File(pdf.BinaryData, "application/pdf");
    }

    return View("Persons", persons);
}
// Advanced rendering with custom options
public ActionResult PersonsAdvanced()
{
    var persons = GetPersonsList();

    if (HttpContext.Request.HttpMethod == "POST")
    {
        var viewPath = "~/Views/Home/Persons.cshtml";

        // Configure the renderer with custom options
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Set custom rendering options
        renderer.RenderingOptions.MarginTop = 40;
        renderer.RenderingOptions.MarginBottom = 40;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;

        // Set custom paper size
        renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
        renderer.RenderingOptions.TextHeader.CenterText = "{pdf-title}";
        renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
        renderer.RenderingOptions.TextHeader.FontSize = 12;

        renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
        renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial;
        renderer.RenderingOptions.TextFooter.FontSize = 10;
        renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";

        // Enable JavaScript execution if needed
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.RenderDelay = 500; // Wait for JS to execute

        // Render the view to PDF
        PdfDocument pdf = renderer.RenderView(this.HttpContext, viewPath, persons);

        // Optional: Apply compression to reduce file size
        pdf.CompressImages(60);

        Response.Headers.Add("Content-Disposition", "inline");
        return File(pdf.BinaryData, "application/pdf");
    }

    return View("Persons", persons);
}
$vbLabelText   $csharpLabel

Weitere Informationen zur Optimierung der Seitenränder finden Sie in unserem Leitfaden Benutzerdefinierte Seitenränder festlegen. Wenn Sie mit bestimmten Papiergrößen arbeiten müssen, sehen Sie sich unsere Benutzerdefinierte Papiergröße-Dokumentation an.

Was kann ich mit der erzeugten PDF-Datei machen?

Sobald Sie das PdfDocument-Objekt durch die RenderView-Methode erhalten, können Sie verschiedene Verbesserungen und Anpassungen daran vornehmen. Sie können das PDF in die Formate PDFA oder PDFUA konvertieren, das erstellte PDF mit digitalen Signaturen versehen oder PDF-Dokumente nach Bedarf zusammenführen und teilen. Mit der Bibliothek können Sie Seiten drehen, Anmerkungen oder Lesezeichen einfügen und eindeutige Wasserzeichen in Ihre PDF-Dateien einfügen.

Zur Optimierung der Dateigröße sollten Sie PDF-Komprimierungstechniken verwenden. Für JavaScript-lastige Inhalte bietet unser JavaScript-Rendering-Leitfaden detaillierte Informationen zum Umgang mit benutzerdefinierten Render-Verzögerungen. Die verschiedenen Exportoptionen finden Sie in unserem umfassenden Leitfaden PDF-Dokumente speichern und exportieren.

Wie füge ich eine Ansicht hinzu?

Welche Schritte sollte ich bei der Erstellung der Ansicht beachten?

  • Klicken Sie mit der rechten Maustaste auf die neu hinzugefügte Aktion Person und wählen Sie "Ansicht hinzufügen"

Visual Studio Kontextmenü mit der Option 'Ansicht hinzufügen...' beim Rechtsklick auf die Aktionsmethode Personen()

  • Wählen Sie "MVC 5 Ansicht" für das neue Scaffolded-Element.

Visual Studio Dialogfeld Add New Scaffolded Item mit ausgewählter MVC 5 View-Vorlage

  • Wählen Sie die "List"-Vorlage und die "Person"-Modellklasse.

Dialogfeld Ansicht hinzufügen in Visual Studio, das die Konfiguration der Ansicht Personen mit Listenvorlage und Modellklasse Person zeigt

Dadurch wird eine .cshtml-Datei mit dem Namen "Personen" erstellt

Wie fügt man eine Druck-Schaltfläche zur Ansicht hinzu?

  • Navigieren Sie zum Ordner "Views" -> Ordner "Home" -> Datei "Persons.cshtml".

Um einen Button zur "Persons"-Aktion hinzuzufügen, verwenden Sie den Code:

@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
    <input type="submit" value="Print Person" />
}
@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
    <input type="submit" value="Print Person" />
}
HTML

Wie füge ich einen Abschnitt zur oberen Navigationsleiste hinzu?

Wo sollte ich die Navigation aktualisieren?

  • Navigieren Sie im Ordner "Views" zum Ordner "Shared" -> Datei "_Layout.cshtml". Platzieren Sie das Navigationselement "Person" nach "Home"

Stellen Sie sicher, dass die Werte für die ActionLink-Methode genau mit unserem Dateinamen übereinstimmen, der "Personen" lautet

<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
    <div class="container">
        @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
        <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
            <ul class="navbar-nav flex-grow-1">
                <li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
            </ul>
        </div>
    </div>
</nav>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark">
    <div class="container">
        @Html.ActionLink("Application name", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
        <button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" title="Toggle navigation" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse d-sm-inline-flex justify-content-between">
            <ul class="navbar-nav flex-grow-1">
                <li>@Html.ActionLink("Home", "Index", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Persons", "Persons", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("About", "About", "Home", new { area = "" }, new { @class = "nav-link" })</li>
                <li>@Html.ActionLink("Contact", "Contact", "Home", new { area = "" }, new { @class = "nav-link" })</li>
            </ul>
        </div>
    </div>
</nav>
HTML

Wie wird das Projekt ausgeführt und getestet?

Das Projekt ausführen

Hier erfahren Sie, wie Sie das Projekt ausführen und ein PDF-Dokument erstellen.

Visual Studio showing ASP.NET MVC HomeController with Persons action method and PDF generation code

PDF-Ausgabe

Wo kann ich das komplette Projekt herunterladen?

Was beinhaltet das Beispielprojekt?

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 Web Application (.NET Framework) MVC-Projekt öffnen können. Das Beispiel enthält alle notwendigen Konfigurationen, Modellklassen, Controller und Ansichten, damit Sie schnell mit der PDF-Generierung in Ihren MVC-Anwendungen beginnen können.

Laden Sie das MVC-Beispielprojekt für die PDF-Konvertierung herunter

Häufig gestellte Fragen

Wie kann ich in ASP.NET MVC CSHTML-Ansichten in PDF konvertieren?

Mit der Methode ChromePdfRenderer.RenderView() von IronPDF können Sie CSHTML-Ansichten in ASP.NET MVC in PDF konvertieren. Installieren Sie einfach das IronPdf.Extensions.Mvc.Framework-Paket und verwenden Sie die Rendering-Methode, um Ihre Ansichten mit nur wenigen Codezeilen in hochwertige PDF-Dokumente umzuwandeln.

Wie viel Code ist minimal erforderlich, um eine Ansicht als PDF zu rendern?

Der minimale Code, um eine Ansicht als PDF zu rendern, lautet: var pdf = new IronPdf.ChromePdfRenderer.RenderRazorToPdf(this.ControllerContext); Diese einzige Codezeile, die IronPDF verwendet, wandelt Ihre aktuelle Ansicht in ein PDF-Dokument um.

Welches Erweiterungspaket benötige ich für die ASP.NET MVC PDF-Generierung?

Für ASP.NET MVC-Anwendungen benötigen Sie das IronPdf.Extensions.Mvc.Framework-Paket. Diese Erweiterung bietet eine nahtlose Integration in ASP.NET MVC-Projekte und arbeitet mit dem IronPdf-Hauptpaket zusammen, um die View-to-PDF-Konvertierungsfunktionalität zu ermöglichen.

Welche Rendering-Engine wird für die Konvertierung von Ansichten in PDF verwendet?

IronPDF verwendet die Chrome PDF Rendering Engine, die bei der Konvertierung von Ansichten in PDF eine pixelgenaue Genauigkeit gewährleistet. Diese Engine behält alle Stile, Layouts und interaktiven Elemente aus Ihren ursprünglichen CSHTML-Ansichten in der endgültigen PDF-Ausgabe bei.

Kann ich Rechnungen und Berichte aus MVC-Ansichten erstellen?

Ja, IronPDF ist perfekt für die Erstellung von Rechnungen, Berichten und anderen Dokumenten aus Ihren MVC-Ansichten. Die Bibliothek bietet professionelle PDF-Ausgabefunktionen und ist damit ideal für die Erstellung von Geschäftsdokumenten direkt aus Ihren Webanwendungsansichten.

Was sind die grundlegenden Schritte zur Umsetzung der View-to-PDF-Konvertierung?

Die grundlegende Implementierung umfasst 5 Schritte: 1) Herunterladen und Installieren der IronPDF-Bibliothek, 2) Hinzufügen einer Modellklasse für Ihre Daten, 3) Erstellen einer Controller-Aktion mithilfe der RenderView-Methode, 4) Hinzufügen einer Ansicht mithilfe von MVC 5 View Scaffolding und 5) Ausführen der Konvertierung mithilfe der Rendering-Methoden von IronPDF.

Behält die PDF-Ausgabe das ursprüngliche Design der Ansicht bei?

Ja, die Chrome-Rendering-Engine von IronPDF sorgt dafür, dass alle CSS-Stile, Layouts und interaktiven Elemente aus Ihren CSHTML-Ansichten in der PDF-Ausgabe erhalten bleiben. Dies sorgt für pixelgenaue Genauigkeit und bewahrt die visuelle Integrität Ihrer ursprünglichen Webansichten.

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