Zum Fußzeileninhalt springen
IRONPDF NUTZEN

Erstellen eines PDF-Viewers in ASP.NET Core MVC | Tutorial

Erstellen Sie einen ASP.NET Core MVC PDF-Viewer mit der Chrome-basierten Rendering-Engine von IronPDF, um PDF-Dateien direkt im Browser anzuzeigen, dynamische PDFs aus HTML-Inhalten zu generieren und zu steuern, ob Benutzer Dokumente ansehen oder herunterladen – alles ohne externe Plugins oder Abhängigkeiten.

Moderne Browser verfügen über einen integrierten PDF-Viewer, der automatisch aktiviert wird, wenn eine Webanwendung PDF-Dateien mit dem richtigen MIME-Typ bereitstellt. Dadurch werden Tools oder Plugins von Drittanbietern überflüssig, so dass die Benutzer PDF-Dokumente direkt in ihrem Browser anzeigen können. IronPDF , eine .NET PDF-Bibliothek mit einer auf Chrome basierenden Rendering-Engine, ermöglicht das einfache Generieren, Rendern und Anzeigen von PDF-Dateien innerhalb von ASP.NET Core MVC-Anwendungen.

Starten Sie jetzt mit IronPDF.
green arrow pointer

Wie installiert man IronPDF in einem ASP.NET Core MVC-Projekt?

Bevor Sie einen PDF-Viewer in ASP.NET Core MVC erstellen, müssen Sie IronPDF zu Ihrem Projekt hinzufügen. Am schnellsten geht es über den NuGet -Paket-Manager in Visual Studio oder über die Befehlszeile mit der .NET CLI oder der Paket-Manager-Konsole.

Install-Package IronPdf
dotnet add package IronPdf
Install-Package IronPdf
dotnet add package IronPdf
SHELL

Sobald das Paket installiert ist, fügen Sie den Namespace IronPdf zu Ihren Controller-Dateien hinzu und schon können Sie mit dem Generieren und Bereitstellen von PDF-Dokumenten beginnen. IronPDF zielt auf .NET 8 und .NET 10 ab und funktioniert daher ohne zusätzliche Konfiguration mit den neuesten ASP.NET Core Versionen.

Für Projekte, die eine Offline-Installation oder die Festlegung einer bestimmten Version erfordern, können Sie das NuGet Paket auch direkt herunterladen und als lokalen Feed hinzufügen. Auf der IronPDF -Lizenzseite finden Sie Informationen zu Test- und Produktionslizenzen, falls Sie diese vor der Live-Schaltung benötigen.

Wie werden PDF-Dateien in modernen Browsern angezeigt?

Moderne Browser wie Chrome, Firefox, Edge und Safari bieten native PDF-Anzeigefunktionen. Wenn Ihre ASP.NET Core Anwendung eine Datei mit dem Inhaltstyp application/pdf zurückgibt, rendert der Browser das PDF-Dokument direkt im Browser, ohne dass Adobe Acrobat oder externe Plugins erforderlich sind. Dieser integrierte PDF-Viewer unterstützt Textauswahl, Drucken, Zoom , Lesezeichen und Seitennavigation und bietet so ein Dokumentenanzeigeerlebnis, das den Nutzern bereits vertraut ist.

Um vorhandene Dateien sicher bereitzustellen, ist es am besten, die Hosting-Umgebung zu verwenden, um sie zu finden, anstatt sich auf Verzeichnispfade zu verlassen, die sich zwischen Entwicklung und Produktion ändern können. Die Verwendung eines Dateistreams ist zudem speichereffizienter als das Laden ganzer Byte-Arrays für große Dokumente.

using Microsoft.AspNetCore.Mvc;

public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}
using Microsoft.AspNetCore.Mvc;

public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}
Imports Microsoft.AspNetCore.Mvc

Public Class DocumentController
    Inherits Controller

    Public Function ViewPdf() As IActionResult
        ' Path to an existing PDF file in the wwwroot folder
        Dim path As String = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf")
        Dim fileBytes As Byte() = System.IO.File.ReadAllBytes(path)
        ' Return file for inline browser display
        Return File(fileBytes, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

Wie sieht eine PDF-Datei im Browser aus?

Ein PDF-Dokument zum Thema

Der obige Code liest eine vorhandene PDF-Datei vom Server und gibt sie an den Browser zurück. Die Methode File() akzeptiert ein Byte-Array und einen Inhaltstyp und weist den Dokumentenbetrachter des Browsers an, den Inhalt inline darzustellen. Dieser Ansatz funktioniert mit allen modernen Browsern auf Desktop- und Mobilgeräten und bietet somit ein einheitliches Benutzererlebnis.

Für komplexere Szenarien empfiehlt es sich, PDFs aus dem Arbeitsspeicher oder Azure Blob Storage zu laden, was die Skalierbarkeit verbessert und den Speicherbedarf auf dem Server reduziert. Die Microsoft-Dokumentation zum Bereitstellen statischer Dateien in ASP.NET Core beschreibt Best Practices für die Dateiverarbeitung in der Produktion.

Wie generiert man dynamisch PDF-Dokumente in ASP.NET Core?

Statische PDF-Dateien sind zwar nützlich, doch viele Webanwendungen benötigen dynamisch generierte Dokumente, die auf den jeweiligen Benutzer oder die Anfrage zugeschnitten sind. Die Klasse ChromePdfRenderer von IronPDF wandelt HTML-Inhalte mithilfe einer echten Chromium-Browser-Engine in professionell gerenderte PDF-Dateien um.

Sie können externe Ressourcen wie CSS für Ihr spezifisches Design oder JavaScript für Diagramme direkt in den HTML-String einbinden. Die Rendering-Engine unterstützt moderne Webstandards wie CSS3, JavaScript ES6+ und Webfonts , sodass das generierte PDF genau so aussieht, wie der Browser die gleiche HTML-Seite rendern würde.

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class ReportController
    Inherits Controller

    Public Function GenerateReport() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        ' HTML content with CSS styling
        Dim html As String = "
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

Wie wird der HTML-Inhalt nach der PDF-Generierung angezeigt?

PDF-Viewer, der einen monatlichen Verkaufsbericht mit formatiertem Kopfzeilentext und Erstellungsdatum anzeigt und die HTML-zu-PDF-Konvertierung mit benutzerdefiniertem CSS-Styling durch IronPDF demonstriert.

Dieses Beispiel veranschaulicht, wie IronPDF eine HTML-Zeichenkette in ein PDF- Dokument umwandelt. Der ChromePdfRenderer verwendet eine Chromium-basierte Engine, wodurch eine genaue CSS-Darstellung und JavaScript Unterstützung gewährleistet werden. Das generierte PDF behält alle im HTML definierten Formatierungen bei und eignet sich daher ideal für die Erstellung von Berichten , Rechnungen und anderen Dokumenten, die eine einheitliche Formatierung erfordern.

Weitere Codebeispiele zur HTML-zu-PDF-Konvertierung finden Sie in der Dokumentation von IronPDF. Sie können auch PDFs aus CSHTML Razor Ansichten , URLs oder sogar Markdown-Inhalten generieren.

Wie steuert man die Anzeige im Text im Vergleich zum Dateidownload?

Manchmal müssen Benutzer PDF-Dateien herunterladen, anstatt sie im Browser anzuzeigen. Wie der Browser die Antwort verarbeitet, hängt vom Header Content-Disposition ab. Dieses Unterscheidungsvermögen ist wichtig, um in Ihrer Anwendung das richtige Nutzererlebnis zu bieten.

Wenn Sie den Dateinamenparameter in der File() Methode weglassen, setzt ASP.NET Core keinen Content-Disposition Header, sodass der Browser sein Standardverhalten verwendet -- das ist typischerweise die Inline-Anzeige. Wenn Sie als dritten Parameter einen Dateinamen angeben, fügt ASP.NET Core automatisch Content-Disposition: attachment hinzu und fordert die Benutzer auf, die Datei stattdessen zu speichern.

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Display PDF inline in browser -- no filename = inline
        return File(pdf.BinaryData, "application/pdf");
    }

    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.EnableJavaScript = true;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 25;
        renderer.RenderingOptions.MarginBottom = 25;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Display PDF inline in browser -- no filename = inline
        return File(pdf.BinaryData, "application/pdf");
    }

    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
        renderer.RenderingOptions.EnableJavaScript = true;

        PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Public Class PdfController
    Inherits Controller

    Public Function DisplayInline() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
        renderer.RenderingOptions.MarginTop = 25
        renderer.RenderingOptions.MarginBottom = 25

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Display PDF inline in browser -- no filename = inline
        Return File(pdf.BinaryData, "application/pdf")
    End Function

    Public Function DownloadPdf() As IActionResult
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
        renderer.RenderingOptions.EnableJavaScript = True

        Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
        ' Prompt download with specified filename
        Return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

Wann sollte man die Inline-Anzeige anstelle des Downloads verwenden?

Screenshot der Wikipedia-Hauptseite, konvertiert in das PDF-Format und inline in einem Browserfenster mit PDF-Viewer-Steuerelementen wie Zoom, Seitennavigation und Druckoptionen angezeigt

Der Unterschied zwischen den beiden Controller-Aktionen liegt in dem dritten Parameter in File(). Diese Flexibilität ermöglicht es Ihrer Anwendung, je nach Benutzerbedürfnissen oder Geschäftsanforderungen beide Szenarien zu unterstützen. Für eine erweiterte Kontrolle können Sie außerdem benutzerdefinierte HTTP-Header festlegen oder Papierformat und Ausrichtung vor dem Rendern konfigurieren.

Manche Anwendungen kombinieren beide Ansätze: einen Vorschau-Endpunkt, der das PDF direkt anzeigt, und einen separaten Download-Endpunkt, der das Speichern der Datei auslöst. Dieses Muster ermöglicht es den Nutzern, einen Einblick in das Dokument zu erhalten, bevor sie es herunterladen.

Wie integriert man Razor Pages in die PDF-Generierung?

Razor Pages in ASP.NET Core MVC bieten einen weiteren Ansatz zur Implementierung eines .NET PDF-Viewers. Das Seitenmodell kann PDF-Dateien generieren und zurückgeben, indem es die gleiche IronPDF Funktionalität nutzt, die auch in Standard-MVC-Controllern verfügbar ist. Dieses Muster eignet sich gut für Anwendungen, die bereits Razor Pages verwenden, da die Logik zur PDF-Generierung an derselben Stelle wie die Seite bleibt, die sie auslöst.

Der OnGet Handler in einer Razor Page verhält sich wie eine Controller-Aktion – er empfängt die Anfrage, führt die Arbeit aus und gibt ein Ergebnis zurück. Die Rückgabe eines FileResult-Objekts aus einem Seitenmodell wird von ASP.NET Core unterstützt und funktioniert auf die gleiche Weise wie die Rückgabe eines File()-Objekts aus einem Controller.

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string html = $@"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;

        // Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string html = $@"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>";

        PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages

Public Class InvoiceModel
    Inherits PageModel

    Public Function OnGet(id As Integer) As IActionResult
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4

        ' Add header and footer
        renderer.RenderingOptions.TextHeader.CenterText = "Invoice Document"
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}"
        renderer.RenderingOptions.TextFooter.FontSize = 10

        Dim html As String = $"
            <html>
            <head>
                <style>
                    body {{ font-family: 'Segoe UI', Arial, sans-serif; padding: 40px; }}
                    h1 {{ color: #1a5490; border-bottom: 2px solid #1a5490; padding-bottom: 10px; }}
                    .invoice-details {{ margin: 20px 0; }}
                    table {{ width: 100%; border-collapse: collapse; }}
                    th, td {{ padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }}
                </style>
            </head>
            <body>
                <h1>Invoice #{id}</h1>
                <div class='invoice-details'>
                    <p><strong>Date:</strong> {DateTime.Now:yyyy-MM-dd}</p>
                    <p><strong>Due Date:</strong> {DateTime.Now.AddDays(30):yyyy-MM-dd}</p>
                </div>
                <table>
                    <tr><th>Description</th><th>Amount</th></tr>
                    <tr><td>Professional Services</td><td>$1,500.00</td></tr>
                </table>
                <p style='margin-top: 40px;'>Thank you for your business!</p>
            </body>
            </html>"

        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
        Return File(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

Welche Rendering-Optionen stehen für die PDF-Anpassung zur Verfügung?

PDF-Viewer, der Rechnung Nr. 20 mit Professional Formatierung anzeigt, einschließlich formatierter Kopfzeilen, Fälligkeitsdatum und einer Dankesnachricht in einer Browseroberfläche mit dunklem Design

Dieses Razor Pages-Beispiel demonstriert, wie der Handler OnGet aus einem URL-Parameter ein PDF generiert. Die RenderingOptions-Eigenschaft ermöglicht eine detaillierte Steuerung von Rändern , Seitenausrichtung und anderen Layout-Einstellungen. Sie können außerdem Kopf- und Fußzeilen hinzufügen, Seitenzahlen konfigurieren oder benutzerdefinierte Papierformate einrichten.

Zu den erweiterten Funktionen, die über RenderingOptions verfügbar sind, gehören Wasserzeichen , PDF-Komprimierung und digitale Signaturen . Für detaillierte Informationen zu allen verfügbaren Optionen konsultieren Sie bitte die IronPDF Referenz für Rendering-Optionen .

Wie handhaben Sie PDF-Sicherheit und Zugriffskontrolle?

In Produktionsanwendungen ist es oft notwendig, einzuschränken, wer ein PDF-Dokument anzeigen oder ändern darf. IronPDF bietet integrierte Unterstützung für PDF-Passwörter und Berechtigungen , sodass Sie Dokumente verschlüsseln, ein Passwort zum Öffnen verlangen oder das Drucken und Kopieren einschränken können.

Sie können Sicherheitseinstellungen auf jedes PdfDocument Objekt anwenden, bevor Sie es von Ihrem Controller zurückgeben. Dieser Ansatz funktioniert unabhängig davon, ob die PDF-Datei aus HTML generiert, von der Festplatte geladen oder aus einer Datenbank abgerufen wurde.

Gängige PDF-Sicherheitsoptionen in IronPDF verfügbar
Sicherheitsmerkmal IronPDF Eigenschaft Anwendungsfall
Besitzerpasswort `OwnerPassword` Unbefugte Berechtigungsänderungen verhindern
Benutzerpasswort `UserPassword` Zum Öffnen des Dokuments ist ein Passwort erforderlich.
Drucken deaktivieren `AllowUserPrinting` Verhindern Sie, dass Empfänger die Datei ausdrucken
Kopieren deaktivieren `AllowUserCopyPasteContent` Blocktextextraktion aus dem PDF
Digitale Signatur `PdfSignature` Dokumentenechtheit prüfen

Bei sensiblen Dokumenten wie Verträgen, Finanzberichten oder Patientenakten ermöglicht die Kombination eines Benutzerpassworts mit eingeschränkten Berechtigungen eine präzise Kontrolle darüber, was Empfänger mit der Datei tun dürfen. Der PDF/A-konforme Modus ist eine weitere Option, die sich für Langzeitarchivierungen eignet, bei denen die Dokumentenintegrität über Jahrzehnte hinweg gewahrt bleiben muss.

Wie optimiert man die Leistung der PDF-Generierung?

Die PDF-Generierung erfordert CPU- und Speicherauslastung, daher ist die Leistung bei Anwendungen mit hohem Datenverkehr von Bedeutung. Die asynchrone Rendering-API von IronPDF ermöglicht es Ihnen, die PDF-Erstellung in einen Hintergrundthread auszulagern, ohne die Anfragepipeline zu blockieren. Dies ist besonders vorteilhaft, wenn mehrere PDFs in einer einzigen Anfrage generiert oder Batch-Aufträge verarbeitet werden.

Für Produktionsumgebungen unter Linux oder in Docker-Containern unterstützt IronPDF die plattformübergreifende Ausführung ohne dass Windows-spezifische Abhängigkeiten erforderlich sind. Die Installationsanleitung für IronPDF Linux und die Docker-Konfigurationsreferenz beschreiben die Einrichtungsschritte. Sowohl das Mozilla PDF.js-Projekt als auch native Browser-Viewer sind mit allen von IronPDF erzeugten PDFs kompatibel, sodass Sie auch bei der Darstellung flexibel sind.

Einige Praktiken zur Verbesserung des Produktionsdurchsatzes:

  • Verwenden Sie nach Möglichkeit ChromePdfRenderer Instanzen wieder, anstatt für jede Anfrage eine neue zu erstellen, da die Initialisierung des Renderers einen gewissen Aufwand verursacht.
  • Verwenden Sie asynchrone Methoden wie RenderHtmlAsPdfAsync, um den Thread freizugeben, während die Chromium-Engine rendert.
  • Zwischenspeicherung der generierten PDFs mittels IMemoryCache oder eines verteilten Caches, wenn dasselbe Dokument wiederholt angefordert wird.
  • Bei sehr großen Dokumenten empfiehlt es sich, die Ausgabe zu streamen, anstatt das gesamte Byte-Array im Speicher zu puffern.

Wie funktioniert asynchrones Rendering in der Praxis?

Die asynchrone API spiegelt die synchrone Version wider, gibt aber einen Task<PdfDocument> zurück. Sie erwarten das Ergebnis innerhalb einer async Controller-Aktion, wodurch der Thread-Pool für die Bearbeitung anderer eingehender Anfragen frei bleibt, während das Rendering fortgesetzt wird. Der Wechsel von synchronem zu asynchronem Rendering in einem Szenario mit hoher Last reduziert typischerweise die Thread-Konflikte und verbessert die Gesamtreaktionszeiten unter gleichzeitiger Last.

Was sind Ihre nächsten Schritte?

Die Entwicklung eines PDF-Viewers in ASP.NET Core MVC kombiniert die nativen Anzeigefunktionen des Browsers mit den Generierungsfunktionen von IronPDF. Der in modernen Browsern integrierte PDF-Viewer übernimmt Anzeige, Druck und Navigation automatisch, wenn Ihr ASP.NET Controller Dateien mit dem korrekten MIME-Typ zurückgibt. IronPDF übernimmt die Generierungsseite – die Umwandlung von HTML, URLs oder bestehenden Dateien in gut formatierte PDF-Dokumente mit voller Unterstützung für CSS, JavaScript, Kopf- und Fußzeilen sowie Sicherheitseinstellungen.

Die wichtigsten in diesem Leitfaden behandelten Funktionen:

  • Bereitstellung vorhandener PDF-Dateien inline mithilfe der Methode File() mit dem MIME-Typ application/pdf
  • Generieren dynamischer PDFs aus HTML-Strings mit ChromePdfRenderer
  • Steuerung der Inline-Anzeige im Vergleich zum Dateidownload über den Content-Disposition Header
  • Hinzufügen von Kopf- und Fußzeilen, Rändern und Sicherheitseinstellungen über RenderingOptions
  • Verwendung von Razor Pages als Alternative zu MVC-Controllern für die PDF-Generierung
  • Anwendung von Passwortschutz und Zugriffsbeschränkungen auf sensible Dokumente
  • Verbesserung der Leistung durch asynchrones Rendering und Antwort-Caching

Von hier aus können Sie fortgeschrittenere Arbeitsabläufe erkunden, wie z. B. das Zusammenführen mehrerer PDFs , das Erstellen ausfüllbarer Formulare oder das Generieren von PDFs aus CSHTML Razor Ansichten . Die IronPDF Dokumentation beschreibt alle Funktionen anhand von funktionierenden Codebeispielen.

Starten Sie Ihre kostenlose Testphase , um alle Funktionen von IronPDF kennenzulernen, oder erwerben Sie eine Lizenz für den Produktiveinsatz.

Häufig gestellte Fragen

Wie kann ich PDF-Dateien in ASP.NET Core MVC-Anwendungen anzeigen?

Mithilfe von IronPDF können Sie PDF-Dateien in ASP.NET Core MVC-Anwendungen anzeigen. Damit können Sie PDF-Dateien direkt im Browser mit modernen integrierten PDF-Viewern generieren, rendern und anzeigen.

Benötige ich Plugins von Drittanbietern, um PDFs in einem Browser anzuzeigen?

Nein, moderne Browser verfügen über integrierte PDF-Viewer, die automatisch aktiviert werden, wenn PDF-Dateien mit dem richtigen MIME-Typ bereitgestellt werden. IronPDF kann Ihnen dabei helfen, dass Ihre PDFs korrekt dargestellt werden.

Was ist der Vorteil der Verwendung von IronPDF in ASP.NET Core MVC?

IronPDF ist eine .NET-PDF-Bibliothek, die das Generieren und Rendern von PDF-Dokumenten in ASP.NET Core MVC-Anwendungen vereinfacht, die Produktivität steigert und die PDF-Verwaltung rationalisiert.

Kann IronPDF mit den vorhandenen Browser-PDF-Viewern zusammenarbeiten?

Ja, IronPDF arbeitet nahtlos mit bestehenden Browser-PDF-Viewern zusammen, indem es sicherstellt, dass die PDFs mit dem richtigen MIME-Typ für die automatische Anzeige im Browser bereitgestellt werden.

Wird IronPDF häufig aktualisiert?

Ja, IronPDF ist eine häufig aktualisierte .NET PDF-Bibliothek, die die neuesten Funktionen und Verbesserungen für die Handhabung von PDF-Dokumenten in ASP.NET Core MVC-Anwendungen bietet.

Wie handhabt IronPDF die PDF-Erzeugung in Webanwendungen?

IronPDF bietet robuste Funktionen für die Generierung von PDFs aus verschiedenen Inhaltstypen und ermöglicht es Entwicklern, dynamische und interaktive PDF-Dokumente innerhalb von Webanwendungen zu erstellen.

Welcher MIME-Typ sollte für die Bereitstellung von PDF-Dateien verwendet werden?

Um eine korrekte Anzeige in Browsern zu gewährleisten, sollten PDF-Dateien mit dem MIME-Typ 'application/pdf' bereitgestellt werden. IronPDF kann bei der effizienten Verwaltung dieses Aspekts helfen.

Kann ich das PDF-Rendering in IronPDF anpassen?

Ja, IronPDF bietet umfangreiche Anpassungsoptionen für das Rendering von PDF-Dateien, mit denen Sie die Ausgabe an spezifische Design- und Funktionsanforderungen anpassen können.

Unterstützt IronPDF nur ASP.NET Core MVC-Anwendungen?

IronPDF eignet sich hervorragend für ASP.NET Core MVC-Anwendungen, ist aber auch vielseitig einsetzbar und kann mit anderen .NET-Anwendungen verwendet werden, um PDF-Funktionen zu verarbeiten.

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

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an