Zum Fußzeileninhalt springen
IRONPDF NUTZEN

PDF in neuem Fenster öffnen ASP .NET C# mit IronPDF

Einführung

Das Öffnen von PDF-Dateien in einem neuen Fenster oder Browser-Tab ist eine häufige Anforderung in ASP.NET-Webanwendungen. Entwickler haben oft mit PDF-Dokumenten zu kämpfen, die automatisch heruntergeladen werden, anstatt im Browser angezeigt zu werden, wenn Benutzer auf einen Link klicken. Dieses frustrierende Verhalten unterbricht das Benutzererlebnis, insbesondere bei der Anzeige von Berichten, Rechnungen oder Dokumentationen, auf die die Benutzer verweisen müssen, während sie auf der aktuellen Seite weiterarbeiten.

IronPDF bietet eine elegante Lösung für diese Herausforderung, indem es leistungsstarke PDF-Erzeugungs- und Anzeigefunktionen bietet, die sich nahtlos in ASP.NET-Anwendungen integrieren lassen. Anstatt sich mit Response-Headern und Content-Disposition-Einstellungen herumzuschlagen, können Entwickler den ChromePdfRenderer von IronPDF nutzen, um PDF-Dateien zu erstellen und bereitzustellen, die sich zuverlässig in neuen Browser-Tabs öffnen.

In diesem Artikel werden wir einen Blick darauf werfen, wie IronPDF die Antwort auf die Erzeugung und Anzeige von PDF-Dateien in Ihrem Computerbrowser ist.

Warum werden PDF-Dateien heruntergeladen und nicht geöffnet?

Bei der Bereitstellung von PDF-Dateien über ASP.NET führt das Standardverhalten häufig zu Downloads und nicht zur Anzeige im Browser. Dies geschieht aufgrund der Art und Weise, wie der Server die Datei über HTTP-Antwort-Header an den Browser sendet. Die Kopfzeile Content-Disposition steuert insbesondere, ob eine PDF-Datei inline geöffnet oder heruntergeladen wird.

Traditioneller ASP.NET-Code, der Response.BinaryWrite mit einem Byte-Array verwendet, setzt oft Header, die Downloads auslösen. Selbst wenn Entwickler Response.ContentType = "application/pdf" einstellen, führen fehlende oder falsche Content-Disposition-Werte dazu, dass der Browser das PDF-Dokument herunterlädt, anstatt es anzuzeigen. Außerdem werden PDF-Dateien von verschiedenen Browsern unterschiedlich gehandhabt: Während Adobe PDF Reader-Plugins die Dateien möglicherweise inline anzeigen, werden sie in mobilen Browsern oft standardmäßig heruntergeladen.

Die serverseitige Konfiguration wird noch komplexer, wenn es um dynamisch generierte PDF-Dokumente aus HTML-Strings oder Datenquellen geht. Ohne den korrekten Pfad und die richtigen Kopfzeilen ist es schwierig, eine konsistente browserübergreifende Darstellung zu erreichen. Viele Entwickler wenden sich auf der Suche nach Lösungen für dieses hartnäckige Problem an Stack Overflow Diskussionen. Verwenden Sie die Suchfunktion, um schnell Antworten zu finden.

Wie vereinfacht IronPDF die PDF-Anzeige?

IronPDF wandelt die komplexe Aufgabe der PDF-Erzeugung und -Anzeige in einfachen Code um. Mit seiner Chrome-basierten Rendering-Engine generiert IronPDF pixelgenaue PDF-Dokumente aus HTML-Inhalten und kümmert sich dabei automatisch um die technischen Details, über die Entwickler oft stolpern.

Die Klasse ChromePdfRenderer der Bibliothek bietet einen modernen Ansatz zur PDF-Erstellung. Anstatt Byte-Arrays und Antwortströme manuell zu verwalten, können Entwickler PDFs aus HTML-Strings, HTML-Dateien oder URLs mit einfachen Methodenaufrufen erzeugen. IronPDF wickelt den Rendering-Prozess intern ab und gewährleistet eine konsistente Ausgabe in verschiedenen Umgebungen.

Neben der grundlegenden Erzeugung bietet IronPDF umfangreiche Rendering-Optionen zur Anpassung der Ausgabe, einschließlich Papiergröße, Ränder und JavaScript-Ausführungsverzögerungen. Diese Flexibilität macht es ideal für die Erstellung von einfachen Dokumenten bis hin zu komplexen Berichten mit Diagrammen und dynamischen Inhalten. Wir bitten Sie um Ihre Kommentare zu den von Ihnen bevorzugten Rendering-Einstellungen.

Wie generiert und öffnet man PDF-Dateien mit IronPDF?

Installieren Sie IronPDF zunächst über den NuGet Package Manager:

Install-Package IronPdf

Hier ist ein vollständiges Beispiel für ASP.NET Core, das eine PDF-Datei generiert und sie in unserem Browser-Tab öffnet:

using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class PdfController : Controller
{
    [HttpGet]
    public IActionResult GeneratePdf()
    {
        // Create a new ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        // Generate PDF from HTML string with support for CSS and JavaScript
        string htmlString = @"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <p>This PDF will open in a new browser tab.</p>
                    <p>Generated on: " + DateTime.Now.ToString() + @"</p>
                </body>
            </html>";
        // Create PDF document with proper format
        var PDF = renderer.RenderHtmlAsPdf(htmlString);
        // Convert to byte array for streaming
        byte[] pdfBytes = pdf.BinaryData;
        // Return file with inline display - key for opening in browser
        Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
        Response.Headers.Add("Content-Length", pdfBytes.Length.ToString());
        return File(pdfBytes, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class PdfController : Controller
{
    [HttpGet]
    public IActionResult GeneratePdf()
    {
        // Create a new ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        // Generate PDF from HTML string with support for CSS and JavaScript
        string htmlString = @"
            <html>
                <body>
                    <h1>Sample PDF Document</h1>
                    <p>This PDF will open in a new browser tab.</p>
                    <p>Generated on: " + DateTime.Now.ToString() + @"</p>
                </body>
            </html>";
        // Create PDF document with proper format
        var PDF = renderer.RenderHtmlAsPdf(htmlString);
        // Convert to byte array for streaming
        byte[] pdfBytes = pdf.BinaryData;
        // Return file with inline display - key for opening in browser
        Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
        Response.Headers.Add("Content-Length", pdfBytes.Length.ToString());
        return File(pdfBytes, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Angezeigte PDF-Datei

Öffnen von PDF in neuen Fenstern ASP .NET C# mit IronPDF: Bild 1 - Bild 1 von 4 im Zusammenhang mit Wie öffne ich PDF in einem neuen Fenster ASP .NET C# mit IronPDF

Der obige Code verwendet [HttpGet]. Wenn Sie diese PDF-Datei erstellen würden, nachdem ein Benutzer ein Formular ausgefüllt hat, würden Sie wahrscheinlich das Attribut [HttpPost] verwenden. Dadurch wird sichergestellt, dass Ihre Leser den Unterschied zwischen einer einfachen Anfrage und einer Post-Anfrage mit Daten kennen.

Der Schlüssel zum Öffnen von PDF-Dateien im Browser ist die Einstellung des Content-Disposition-Headers auf "inline" statt "attachment". Dadurch wird der Browser angewiesen, die Datei anzuzeigen, anstatt sie durch Herunterladen zu speichern. Die Parameter object sender und EventArgs e in herkömmlichen ASP.NET-Klickereignissen können diese Controller-Aktion auslösen.

Bei WebForms-Anwendungen, die ein Literal-Steuerelement oder ein Literal-Tag verwenden, können Sie den PDF-Viewer direkt auf der aktuellen Seite einbetten:

protected void OpenPdf_Click(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();
    // Generate PDF document from HTML
    var PDF = renderer.RenderHtmlAsPdf("<h1>Invoice</h1><p>Your order details</p>");
    // Get byte array from PDF
    byte[] data = pdf.BinaryData;
    // Clear response and write PDF to browser
    Response.Clear();
    Response.ContentType = "application/pdf";
    Response.AddHeader("Content-Length", data.Length.ToString());
    Response.AddHeader("Content-Disposition", "inline; filename=invoice.pdf");
    Response.BinaryWrite(data);
    Response.End();
}
protected void OpenPdf_Click(object sender, EventArgs e)
{
    var renderer = new ChromePdfRenderer();
    // Generate PDF document from HTML
    var PDF = renderer.RenderHtmlAsPdf("<h1>Invoice</h1><p>Your order details</p>");
    // Get byte array from PDF
    byte[] data = pdf.BinaryData;
    // Clear response and write PDF to browser
    Response.Clear();
    Response.ContentType = "application/pdf";
    Response.AddHeader("Content-Length", data.Length.ToString());
    Response.AddHeader("Content-Disposition", "inline; filename=invoice.pdf");
    Response.BinaryWrite(data);
    Response.End();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für Benutzer, die PDF-Formulare erstellen oder digitale Signaturen hinzufügen möchten, bietet IronPDF umfassende Unterstützung für diese fortgeschrittenen Funktionen.

Was ist mit Browser Tab Control?

Während serverseitiger Code bestimmt, ob eine PDF-Datei inline angezeigt wird, erfordert die Steuerung, ob sie in derselben oder in einer neuen Registerkarte geöffnet wird, clientseitiges JavaScript. Das target-Attribut in HTML-Links bietet die einfachste Lösung, um die PDF-Datei in einem neuen Fenster zu öffnen:

<a href="/Pdf/GeneratePdf" target="_blank">View File</a>
<a href="/Pdf/GeneratePdf" target="_blank">View File</a>
HTML

PDF wird in neuem Browser-Tab angezeigt

Öffnen von PDF in neuem Fenster ASP .NET C# mit IronPDF: Bild 2 - Geöffnetes PDF in neuer Registerkarte

Um mehr Kontrolle zu haben, funktioniert die JavaScript-Funktion window.open gut mit dynamisch generierten URLs, um PDF-Dateien in einem neuen Browser-Tab zu öffnen:

function openPdfInNewTab() {
    // Open PDF in new window using JavaScript
    window.open('/Pdf/GeneratePdf', '_blank');
    return false; // Prevent default form submission
}
function openPdfInNewTab() {
    // Open PDF in new window using JavaScript
    window.open('/Pdf/GeneratePdf', '_blank');
    return false; // Prevent default form submission
}
JAVASCRIPT

Kombinieren Sie dies in ASP.NET-Webanwendungen mit einer Schaltflächensteuerung:

<asp:Button ID="btnViewPdf" runat="server"
            OnClientClick="window.open('/Pdf/GeneratePdf', '_blank'); return false;"
            Text="Open PDF in New Tab" />
<asp:Button ID="btnViewPdf" runat="server"
            OnClientClick="window.open('/Pdf/GeneratePdf', '_blank'); return false;"
            Text="Open PDF in New Tab" />
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Hinweis: Bei der Verwendung von JavaScript's window.open(), ist das zweite Argument '_blank' das, was das Dokument in einem neuen, separaten Fenster oder Tab öffnet. Der Name des neuen Fensters kann frei gelassen werden, wenn Sie keinen Namen angeben müssen.

Das HTML-Objekt-Tag bietet eine weitere Möglichkeit, PDF-Dokumente direkt in die Seite einzubetten, was besonders nützlich ist, wenn die Benutzer den Adobe PDF Reader installiert haben:

<object data="/Pdf/GeneratePdf" type="application/pdf" width="100%" height="600px">
    <embed src="/Pdf/GeneratePdf" type="application/pdf" />
    <p>Your browser doesn't support embedded PDF documents.
       <a href="/Pdf/GeneratePdf" target="_blank">View PDF File</a>
    </p>
</object>
<object data="/Pdf/GeneratePdf" type="application/pdf" width="100%" height="600px">
    <embed src="/Pdf/GeneratePdf" type="application/pdf" />
    <p>Your browser doesn't support embedded PDF documents.
       <a href="/Pdf/GeneratePdf" target="_blank">View PDF File</a>
    </p>
</object>
HTML

Eingebettete PDF-Datei

Öffnen von PDF in einem neuen Fenster ASP .NET C# mit IronPDF: Bild 3 - Eingebettete PDF-Datei

Dieser Ansatz funktioniert gut, wenn Adobe PDF Reader oder ähnliche Plugins verfügbar sind, obwohl moderne Browser zunehmend die native PDF-Anzeige ohne zusätzliche Software unterstützen. Laut der Microsoft-Dokumentation bieten korrekte HTTP-Header in Kombination mit clientseitigem Code die zuverlässigste browserübergreifende Lösung. Bitte beachten Sie die Bedeutung des Attributs target="_blank".

Wie man mit verschiedenen Dateiquellen umgeht?

IronPDF zeichnet sich durch die Verarbeitung verschiedener Eingabequellen aus, die über HTML-Strings hinausgehen. Bei der Arbeit mit vorhandenen PDF-Dateien oder bei der Generierung aus verschiedenen Datenformaten bietet die Bibliothek flexible Optionen für die Bereitstellung von PDF-Dokumenten für Benutzer.

Zum Laden vorhandener PDF-Dokumente aus dem richtigen Pfad:

public IActionResult ViewFile(string fileName)
{
    // Ensure correct path to PDF file
    string path = Path.Combine(_webHostEnvironment.WebRootPath, "pdfs", fileName);
    // Load existing PDF document
    var PDF = PdfDocument.FromFile(path);
    // Optionally add additional information to the PDF
    pdf.AddPage(renderer.RenderHtmlAsPdf("<h2>Additional Information</h2>"));
    // Convert to stream for browser display
    var stream = pdf.Stream;
    byte[] bytes = stream.ToArray();
    // Set headers for inline display in new browser tab
    Response.Headers.Add("Content-Disposition", "inline; filename=" + fileName);
    Response.Headers.Add("Content-Length", bytes.Length.ToString());
    return File(bytes, "application/pdf");
}
public IActionResult ViewFile(string fileName)
{
    // Ensure correct path to PDF file
    string path = Path.Combine(_webHostEnvironment.WebRootPath, "pdfs", fileName);
    // Load existing PDF document
    var PDF = PdfDocument.FromFile(path);
    // Optionally add additional information to the PDF
    pdf.AddPage(renderer.RenderHtmlAsPdf("<h2>Additional Information</h2>"));
    // Convert to stream for browser display
    var stream = pdf.Stream;
    byte[] bytes = stream.ToArray();
    // Set headers for inline display in new browser tab
    Response.Headers.Add("Content-Disposition", "inline; filename=" + fileName);
    Response.Headers.Add("Content-Length", bytes.Length.ToString());
    return File(bytes, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Geöffnetes PDF

Öffnen von PDF in einem neuen Fenster ASP .NET C# mit IronPDF: Bild 4 - Anzeigen eines vorhandenen PDF-Dokuments

Die Arbeit mit Byte-Arrays aus einer Datenbank oder einer externen Quelle erfordert eine sorgfältige Handhabung, um sicherzustellen, dass die PDF-Datei korrekt geöffnet wird:

public IActionResult DisplayFromDatabase(int documentId)
{
    // Retrieve byte array from database or system
    byte[] pdfData = GetPdfFromDatabase(documentId);
    // Load PDF document from bytes
    var PDF = PdfDocument.FromBytes(pdfData);
    // Optionally sign or modify the PDF
    // pdf.SignWithDigitalCertificate(...);
    // Set response headers for inline display
    Response.Headers.Add("Content-Disposition",
                        $"inline; filename=document_{documentId}.pdf");
    Response.Headers.Add("Content-Length", pdfData.Length.ToString());
    // Return file to open in browser
    return File(pdfData, "application/pdf");
}
public IActionResult DisplayFromDatabase(int documentId)
{
    // Retrieve byte array from database or system
    byte[] pdfData = GetPdfFromDatabase(documentId);
    // Load PDF document from bytes
    var PDF = PdfDocument.FromBytes(pdfData);
    // Optionally sign or modify the PDF
    // pdf.SignWithDigitalCertificate(...);
    // Set response headers for inline display
    Response.Headers.Add("Content-Disposition",
                        $"inline; filename=document_{documentId}.pdf");
    Response.Headers.Add("Content-Length", pdfData.Length.ToString());
    // Return file to open in browser
    return File(pdfData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für Szenarien, die die Integration von HTML-Objekt-Tags mit Literal-Steuerelementen erfordern, unterstützt IronPDF die erweiterte HTML-zu-PDF-Konvertierung einschließlich CSS-Styling, Bilder und sogar Webfonts. Die Bibliothek bietet auch umfassende Anleitungen zur Problembehandlung, um pixelgenaue Ergebnisse zu erzielen. Dies ermöglicht Ihnen einen einfachen Zugriff auf die Dateidaten.

Abschluss

Mit IronPDF for .NET C# wird das Öffnen von PDF-Dateien in einem neuen Fenster zum Kinderspiel. Durch die Bewältigung der Komplexität der PDF-Generierung und die korrekte Einstellung von HTTP-Headern können Entwickler eine konsistente Anzeige in verschiedenen Browsern sicherstellen und gleichzeitig einen sauberen, wartbaren Code in ihren Programmen beibehalten. Ganz gleich, ob Sie mit HTML-Strings, bestehenden PDF-Dokumenten oder Byte-Arrays aus Datenbanken arbeiten, IronPDF bietet die erforderlichen Werkzeuge, um PDF-Inhalte genau so bereitzustellen, wie die Benutzer es erwarten.

Starten Sie noch heute Ihre kostenlose Testversion von IronPDF, um professionelle PDF-Funktionen in Ihren ASP.NET-Anwendungen zu implementieren. Für den produktiven Einsatz empfehlen wir unsere Lizenzierungsoptionen, die umfassenden Support und zusätzliche Funktionen für Webanwendungen in Unternehmen bieten.

Häufig gestellte Fragen

Wie kann ich mit ASP.NET und C# PDFs in neuen Browser-Tabs öffnen?

Um PDFs in neuen Browser-Tabs mit ASP.NET und C# zu öffnen, können Sie IronPDF verwenden, um Ihre PDF-Dokumente zu generieren und zu streamen. Indem Sie die richtigen HTTP-Header in Ihrer Antwort setzen, stellen Sie sicher, dass die PDF-Datei in einem neuen Tab geöffnet wird, anstatt sie herunterzuladen.

Was ist der Vorteil der Anzeige von PDFs in Browser-Tabs?

Die Anzeige von PDFs in Browser-Tabs verbessert die Benutzerfreundlichkeit, da die Benutzer die Dokumente direkt in ihrem Browser anzeigen können, ohne sie erst herunterladen zu müssen. Auf diese Weise bleiben die Nutzer auch länger auf Ihrer Website und behalten den Kontext ihrer Browsing-Sitzung bei.

Wie setze ich HTTP-Header, um PDFs in einer neuen Registerkarte zu öffnen?

Um HTTP-Header für das Öffnen von PDF-Dateien in einer neuen Registerkarte festzulegen, sollten Sie "Content-Disposition: inline; filename="yourfile.pdf"" verwenden. Dieser Header gibt dem Browser vor, dass er versuchen soll, die PDF-Datei inline, also innerhalb des Browserfensters, anzuzeigen.

Kann JavaScript verwendet werden, um PDF-Dateien in neuen Fenstern zu öffnen?

Ja, JavaScript kann verwendet werden, um PDFs in neuen Fenstern zu öffnen. Wenn Sie ein Hyperlink-Element mit dem Zielattribut "_blank" erstellen, können Sie sicherstellen, dass die PDF-Datei in einem neuen Browser-Tab oder -Fenster geöffnet wird.

Unterstützt IronPDF verschiedene PDF-Funktionen in ASP.NET?

Ja, IronPDF unterstützt eine breite Palette von PDF-Funktionen in ASP.NET, einschließlich der Erstellung, Bearbeitung und Darstellung von PDFs sowie deren Öffnung in Browser-Tabs.

Ist es möglich, das Erscheinungsbild von PDFs, die in Browser-Tabs angezeigt werden, anzupassen?

Während das Erscheinungsbild der PDFs selbst durch den PDF-Generierungsprozess angepasst werden kann, hängt die Art und Weise, wie sie in Browser-Tabs angezeigt werden, von den PDF-Viewer-Funktionen des Browsers ab. IronPDF hilft bei der Erstellung hochwertiger PDFs, die in Browsern gut dargestellt werden.

Welche Rolle spielt IronPDF bei der Verbesserung der PDF-Anzeige in Webanwendungen?

IronPDF verbessert die PDF-Anzeige in Webanwendungen, indem es Entwicklern Werkzeuge zur Verfügung stellt, mit denen sie PDFs programmatisch generieren und manipulieren können, um sicherzustellen, dass sie für die Anzeige in Browsern optimiert sind und den spezifischen Benutzeranforderungen entsprechen.

Kann IronPDF große PDF-Dateien effizient verarbeiten?

Ja, IronPDF wurde entwickelt, um große PDF-Dateien effizient zu verarbeiten und bietet Leistungsoptimierungen, die ein schnelles Rendering und minimale Ladezeiten beim Öffnen von PDFs in neuen Browser-Tabs gewährleisten.

Wie stellt IronPDF die Kompatibilität zwischen verschiedenen Browsern sicher?

IronPDF generiert standardkonforme PDF-Dateien, die mit verschiedenen Browsern kompatibel sind, um sicherzustellen, dass die Benutzer unabhängig von der Wahl ihres Browsers ein einheitliches Anzeigeerlebnis haben.

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