ASPX-Seiten als PDF in ASP.NET

Chaknith Bin
Chaknith Bin
28. August 2018
Aktualisiert 17. Februar 2025
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Dieses ASPX zu PDF-Tutorial führt Sie Schritt für Schritt durch die Konvertierung von ASPX in PDF. Speichern einer ASPX-Seite als PDF in ASP.NET-Webanwendungen.

Nutzer sollten die ASPX-Datei mit der Dateierweiterung .aspx niemals in Google Chrome öffnen müssen. Wir bitten unser Ingenieurteam, ASPX automatisch mit .NET-Code in PDF zu konvertieren! Wir müssen niemals STRG P drücken! Es gibt eine serverbasierte Möglichkeit, ASPX-Internetmedien zu konvertieren und als PDF zu speichern.

Wenden Sie Einstellungen an, darunter das Festlegen von Dateiverhalten und -namen, das Hinzufügen von Kopf- und Fußzeilen, das Ändern von Druckoptionen, das Hinzufügen von Seitenumbrüchen, das Kombinieren von Async und Multithreading und vieles mehr.

Wie konvertiert man ASPX-Dateien in PDF?

Microsoft Web Form Applications für ASP.NET werden häufig für die Entwicklung von anspruchsvollen Websites, Online-Banking, Intranets und Buchhaltungssystemen verwendet. Ein häufiges Merkmal von ASP.NET (ASPX)-Websites ist die Generierung dynamischer PDF-Dateien wie Rechnungen, Tickets oder Managementberichte, die Benutzer im PDF-Format herunterladen können.

Dieses Tutorial zeigt, wie man die IronPDF-Softwarekomponente für .NET verwendet, um jedes ASP.NET-Webformular in ein PDF zu verwandeln (ASP.NET zu PDF). HTML, das normalerweise als Webseite gerendert wird, wird verwendet, um als PDF zum Herunterladen oder zur Anzeige in einem Webbrowser gerendert zu werden. Das beigefügte Quellprojekt zeigt Ihnen, wie Sie eine Webseite in ASP.NET mit C# in PDF konvertieren können.

Wir erreichen diese HTML-zu-PDF-Konvertierung (ASPX in PDF umwandeln), indem wir Webseiten mit IronPDF und seiner AspxToPdf-Klasse rendern.

1. Installieren Sie den kostenlosen ASPX-Dateikonverter von IronPDF

Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer

Installation über NuGet

Klicken Sie in Visual Studio mit der rechten Maustaste auf den Projektlösungsexplorer und wählen Sie "NuGet-Pakete verwalten...". Suchen Sie dort einfach nach IronPDF und installieren Sie die neueste Version... klicken Sie in allen Dialogfeldern, die angezeigt werden, auf OK.

Dies funktioniert in jedem C# .NET-Framework-Projekt ab Framework 4.6.2 und höher oder .NET Core 2 und höher. Es funktioniert auch genauso gut in VB.NET-Projekten.

Install-Package IronPdf

IronPDF von NuGet herunterladen

Installation über DLL

Alternativ kann die IronPDF-DLL heruntergeladen und manuell in das Projekt oder GAC installiert werden von IronPDF-Paket herunterladen.

Denken Sie daran, diese Anweisung an den Anfang jeder cs-Klassendatei hinzuzufügen, die IronPDF verwendet:


ironPDF verwenden;

2. ASP.NET-Webseiten in PDF konvertieren

Wir beginnen mit einem normalen ASPX-"Webformular", das als HTML gerendert wird. Wir konvertieren die ASPX-Seite später in das PDF-Dateiformat.

In dem beigefügten Beispiel-Quellcode haben wir eine Geschäftsrechnung "Invoice.aspx" gerendert, eine einfache HTML-Geschäftsrechnung, die als ASP.NET-Seite gerendert wurde.

Die HTML-Seite enthält CSS3-Stylesheets und kann auch Bilder und Javascript enthalten.

Um diese ASP.NET-Webseite anstelle von HTML in ein PDF zu rendern, müssen wir den C#- (oder VB.NET-) Code öffnen und dies zum Page_Load-Ereignis hinzufügen:

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-1.cs
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
$vbLabelText   $csharpLabel

Das ist alles, was erforderlich ist; wird der HTML-Code nun als PDF-Datei dargestellt. Hyperlinks, StyleSheets, Bilder und sogar HTML-Formulare bleiben erhalten. Dies entspricht in etwa der Ausgabe, wenn der Benutzer den HTML-Code in seinem Browser selbst in ein PDF-Dokument umwandelt. IronPDF basiert auf der Chromium-Webbrowser-Technologie, die auch Google Chrome verwendet.

Der gesamte C#-Code liest sich im Ganzen wie folgt: Konvertieren Sie die ASPX-Seite als PDF in Active Server Pages.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using IronPdf;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports IronPdf

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

3. ASPX-Datei in PDF-Konverter-Einstellungen übernehmen

Bei der Konvertierung einer ASPX-Datei in PDF, die mit .NET Web Forms generiert wurde, gibt es viele Optionen zur Optimierung und Perfektionierung.

Diese Optionen sind vollständig online dokumentiert unter IronPDF API Reference.

3.1. PDF-Dateiverhalten einstellen

Das "InBrowser"-Dateiverhalten versucht, das PDF direkt im Browser des Benutzers anzuzeigen. Dies ist nicht immer in jedem Webbrowser möglich, aber in der Regel eine gängige Funktion moderner, standardkonformer Browser.


IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.InBrowser);

Das Dateiverhalten bei Anhang führt dazu, dass die PDF-Datei heruntergeladen wird.


IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment);

3.2. PDF-Dateiname festlegen

Wir können auch den Dateinamen des PDF-Dokuments festlegen, indem wir einen zusätzlichen Parameter hinzufügen. Das bedeutet, dass wir den Namen der Datei kontrollieren können, wenn der Nutzer entscheidet, ob er sie herunterladen oder behalten will. Wenn wir die ASPX-Seite als PDF speichern, wird dieser Name dem PDF-Dokument gegeben.


IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf");

3.3. PDF-Druckoptionen ändern

Wir können die Ausgabe der PDF-Datei steuern, indem wir eine Instanz der IronPDF.ChromePdfRenderer-Klasse hinzufügen. ChromePdfRenderer API-Referenz

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-3.cs
var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
{
    EnableJavaScript = false,
    //.. many more options available
};
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {.EnableJavaScript = False}
IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
$vbLabelText   $csharpLabel

Die verfügbaren PDF-Rendering-Optionen umfassen:

  • CreatePdfFormsFromHtml Wandelt ASPX-Formularelemente in bearbeitbare PDF-Formulare um.
  • CssMediaType Screen oder Print CSS-Stile und Stylesheets. Siehe unser vollständiges, ausführliches Tutorial mit Vergleichsbildern.
  • CustomCssUrl Ermöglicht die Anwendung eines benutzerdefinierten CSS-Stylesheets auf HTML vor dem Rendern. Kann ein lokaler Dateipfad oder eine entfernte URL sein.
  • EnableMathematicalLaTex Aktiviert oder deaktiviert das Rendern von mathematischen LaTeX-Elementen.
  • EnableJavaScript Aktiviert die Ausführung von JavaScript und JSON, bevor die Seite gerendert wird. Ideal für den Druck aus Ajax-/Angular-Anwendungen. Siehe auch den WaitFor-Anleitungsleitfaden.
  • Javascript Gibt einen benutzerdefinierten JavaScript-String an, der ausgeführt wird, nachdem alle HTML-Inhalte geladen wurden, aber bevor die PDF-Erstellung erfolgt.
  • JavascriptMessageListener Eine Methodenrückruf, die aufgerufen wird, wann immer eine JavaScript-Konsolennachricht des Browsers verfügbar wird.
  • FirstPageNumber Erste Seitenzahl für Kopfzeile und Fußzeile. Der Standardwert ist 1.
  • TableOfContents Erzeugt ein Inhaltsverzeichnis an der Stelle im HTML-Dokument, an der ein Element mit der id "ironpdf-toc" gefunden wird.
  • TextHeader Legt den Footer-Inhalt für jede PDF-Seite als Text fest. Unterstützt 'mail-merge' und wandelt URLs automatisch in Hyperlinks um.
  • TextFooter Legt den Header-Inhalt für jede PDF-Seite als Text fest. Unterstützt 'mail-merge' und wandelt URLs automatisch in Hyperlinks um.
  • HtmlHeader Legt den Kopfzeileninhalt für jede PDF-Seite mithilfe von Inhaltszeichenfolgen oder sogar HTML fest.
  • HtmlFooter Legt den Footer-Inhalt für jede PDF-Seite fest, indem Inhaltszeichenfolgen oder sogar HTML verwendet werden.
  • MarginBottom Unterer PDF-Papierrand in Millimetern. Für eine randlose PDF-Datei auf Null setzen.
  • MarginLeft Linker PDF-Papier-Rand in Millimetern. Für eine randlose PDF-Datei auf Null setzen.
  • MarginRight Rechter PDF-Papierabstand in Millimetern. Für eine randlose PDF-Datei auf Null setzen.
  • MarginTop Oberer PDF-Papierabstand in Millimetern. Für eine randlose PDF-Datei auf Null setzen.
  • UseMarginsOnHeaderAndFooter Gibt an, ob die Randwerte des Hauptdokuments beim Rendern von Kopf- und Fußzeilen verwendet werden sollen.
  • PaperFit: Ein Manager zum Einrichten virtueller Papierlayouts, der steuert, wie Inhalte auf PDF-"Papier"-Seiten angeordnet werden. Enthält Optionen für das Standardverhalten von Chrome, gezoomt, Responsive CSS3 Layouts, Scale-To-Page & Continuous Feed Stil PDF Seite Setups.
  • PaperOrientation Die Ausrichtung des PDF-Papiers. Landschaft oder Porträt.
  • PageRotation Seitenrotation aus vorhandenem Dokument. Vollständige Erklärung und begleitendes Codebeispiel.
  • PaperSize Legen Sie eine Ausgabe-Papiergröße für PDF-Seiten mit System.Drawing.Printing.PaperKind fest.
  • SetCustomPaperSizeinCentimeters Legt die Papiergröße in Zentimetern fest.
  • SetCustomPaperSizeInInches Legt das Papierformat in Zoll fest.
  • SetCustomPaperSizeinMilimeters Legt die Papiergröße in Millimetern fest.
  • SetCustomPaperSizeinPixelsOrPoints Legt die Papiergröße in Bildschirm-Pixeln oder Drucker-Punkten fest.
  • ForcePaperSize Gibt an, ob Seiten nach der Erstellung eines PDFs aus HTML über die angegebene PaperSize durch Größenänderung der Seite exakt angepasst werden sollen.
  • PrintHtmlBackgrounds Druckt HTML-Hintergrundbilder.
  • Graustufen Gibt ein Graustufen-PDF in Grautönen statt in voller Farbe aus.
  • WaitFor Ein Wrapper-Objekt, das die Konfiguration für den Wait-for-Mechanismus hält. Dies kann nützlich sein, wenn es um das Rendering von JavaScript, Ajax oder Animationen geht.

    • PageLoad: Standardrendering ohne Wartezeit.

    • RenderDelay: Einstellen einer willkürlichen Wartezeit.

    • Schriftarten: Wartet, bis alle Schriftarten geladen sind.

    • JavaScript: Die Ausführung des Renderings mit einer JavaScript-Funktion auslösen.

    • HTML-Elemente: Wartet auf bestimmte HTML-Elemente, wie Element-IDs, Namen, Tag-Namen und Abfrage-Selektoren, um Elemente zu zielen.
  • NetworkIdle: Warten auf Netzwerkleerlauf (0, 2 oder ein benutzerdefinierter Wert).
  • Titel 'Titel'-Metadaten des PDF-Dokuments.
  • InputEncoding Die Eingabezeichenkodierung als Zeichenkette. UTF-8 ist der Standard für ASP.NET.
  • RequestContext Gibt den Anforderungskontext für das Rendern an.
  • Timeout. Render-Timeout in Sekunden.

4. Kopf- und Fußzeilen zu ASPX-PDFs hinzufügen

Mit IronPDF können der PDF-Ausgabe Kopf- und Fußzeilen hinzugefügt werden.

Der einfachste Weg, dies zu tun, ist mit der TextHeaderFooter-Klasse, die ein einfaches Layout unterstützt, mit dem dynamische Daten wie die aktuelle Zeit und Seitenzahlen leicht hinzugefügt werden können.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-4.cs
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
            {
                TextHeader = new IronPdf.TextHeaderFooter()
                {
                    CenterText = "Invoice",
                    DrawDividerLine = false,
                    Font = FontTypes.Arial,
                    FontSize = 12
                },
                TextFooter = new IronPdf.TextHeaderFooter()
                {
                    LeftText = "{date} - {time}",
                    RightText = "Page {page} of {total-pages}",
                    Font = IronSoftware.Drawing.FontTypes.Arial,
                    FontSize = 12,
                },
            };
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions);
        }
    }
}
Imports IronSoftware.Drawing
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
				.TextHeader = New IronPdf.TextHeaderFooter() With {
					.CenterText = "Invoice",
					.DrawDividerLine = False,
					.Font = FontTypes.Arial,
					.FontSize = 12
				},
				.TextFooter = New IronPdf.TextHeaderFooter() With {
					.LeftText = "{date} - {time}",
					.RightText = "Page {page} of {total-pages}",
					.Font = IronSoftware.Drawing.FontTypes.Arial,
					.FontSize = 12
				}
			}
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "Invoice.pdf", AspxToPdfOptions)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Alternativ können wir HTML-Kopf- und Fußzeilen mit der Klasse HtmlHeaderFooter erzeugen, die auch CSS, Bilder und Hyperlinks unterstützt.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-5.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace AspxToPdfTutorial
{
    public partial class Invoice : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var AspxToPdfOptions = new IronPdf.ChromePdfRenderOptions()
            {
                MarginTop = 50, // make sufficiant space for an HTML header
                HtmlHeader = new IronPdf.HtmlHeaderFooter()
                {
                    HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
                }
            };
            IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Namespace AspxToPdfTutorial
	Partial Public Class Invoice
		Inherits System.Web.UI.Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			Dim AspxToPdfOptions = New IronPdf.ChromePdfRenderOptions() With {
				.MarginTop = 50,
				.HtmlHeader = New IronPdf.HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
			}
			IronPdf.AspxToPdf.RenderThisPageAsPdf(IronPdf.AspxToPdf.FileBehavior.Attachment, "MyDocument.pdf", AspxToPdfOptions)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Wie in unseren Beispielen zu sehen ist, können wir mit Hilfe von Platzhaltern dynamischen Text oder HTML in Kopf- und Fußzeilen einfügen:

  • {page}: für die aktuelle Seitenzahl des PDFs.
  • {total-pages}: als die Gesamtzahl der Seiten innerhalb der PDF.
  • {url}: Web-URL, von der das PDF-Dokument gerendert wurde.
  • {date}: für das heutige Datum in einem Format, das der Systemumgebung des Servers entspricht.
  • {time}: für die Zeit in Stunden:Sekunden im 24-Stunden-Format.
  • {html-title}: fügt den Titel aus dem Head-Tag des ASPX-Webformulars ein.
  • {pdf-title}: für den Dokumentdateinamen.

5. ASPX-Datei auf PDF anwenden Tricks: Seitenumbrüche

Während HTML in der Regel zu einer langen Seite "fließt", simulieren PDFs digitales Papier und sind in einheitliche Seiten unterteilt. Wenn Sie den folgenden Code zu Ihrer ASPX-Seite hinzufügen, wird automatisch ein Seitenumbruch in der mit .NET generierten PDF-Datei erzeugt.

:path=/static-assets/pdf/content-code-examples/how-to/aspx-to-pdf-6.cs
<div style='page-break-after: always;'>&nbsp;</div>
HTML

6. Kombinieren Sie Async und Multithreading für mehr Leistung

IronPDF wurde für .NET-Framework 4.6.2 oder .NET Core 2 oder höher entwickelt. In Projekten mit Framework 4.6.2 oder höher können ASYNC-Funktionen genutzt werden, um die Leistung bei der Arbeit mit mehreren Dokumenten zu verbessern.

Durch die Kombination von Async mit Multithreading-CPUs und dem Befehl Parallel.ForEach wird die Massenverarbeitung von PDF-Formaten erheblich verbessert.

7. Herunterladen als ASP.NET-Quellcode

Der vollständige ASPX-Datei-zu-PDF-Konverter-Quellcode für dieses Tutorial steht als gezipptes Visual Studio Webanwendungsprojekt zum Download bereit.

Laden Sie dieses Tutorial als ASP.NET Visual Studio-Projekt herunter

Der kostenlose Download enthält funktionierende Code-Beispiele für ein C# ASP.NET Web Forms-Projekt, das eine als PDF gerenderte Webseite mit angewandten Einstellungen zeigt. Wir hoffen, dass dieses Tutorial Ihnen geholfen hat, zu lernen, wie man eine ASPX-Datei als PDF speichert.

Vorwärts gehen

Im Allgemeinen ist der beste Weg, eine Programmiertechnik zu erlernen, das Experimentieren innerhalb Ihrer eigenen ASP.NET-Projekte. Dazu gehört auch das Ausprobieren des ASPX to PDF Converter von IronPDF.

Entwickler könnten auch an der IronPdf.AspxToPdf-Klassenreferenz interessiert sein.

8. ASPX zu PDF Tutorial Video ansehen


Tutorial Schnellzugriff

Brand Visual Studio related to Tutorial Schnellzugriff

Dieses Tutorial als Quellcode herunterladen

The full ASPX File to PDF Converter Source Code for this tutorial is available as a zipped Visual Studio Web Application project. Der kostenlose Download enthält funktionierende Codebeispiele für ein C# ASP.NET Web Forms-Projekt, das eine als PDF gerenderte Webseite mit angewendeten Einstellungen zeigt. Herunterladen

Erkunden Sie dieses Tutorial auf GitHub

Der Code für dieses C#-ASPX-zu-PDF-Projekt ist in C# und VB.NET auf GitHub als ASP.NET-Website-Projekt verfügbar. Bitte forken Sie uns auf GitHub für weitere Hilfe bei der Verwendung von IronPDF. Sie können dies gerne mit jedem teilen, der fragt: 'Wie konvertiere ich ASPX in PDF?'

C# ASPX zu PDF Website-Projekt Erweiterte ASP.NET-Seite zu PDF-Beispielen in C# zur Erstellung von PDFs ASP.NET PDF-Beispiele in VB.NET zum Erstellen von PDFs
Github Icon related to Tutorial Schnellzugriff
Html To Pdf Icon related to Tutorial Schnellzugriff

C# PDF-Schnellstartanleitung herunterladen

Um die Entwicklung von PDFs in Ihren .NET-Anwendungen zu vereinfachen, haben wir eine Schnellstartanleitung als PDF-Dokument zusammengestellt. Dieses "Cheat-Sheet" bietet schnellen Zugriff auf gängige Funktionen und Beispiele für die Erzeugung und Bearbeitung von PDFs in C# und VB.NET und hilft Ihnen, Zeit zu sparen, wenn Sie IronPDF in Ihrem .NET-Projekt einsetzen.

Herunterladen

Ansicht der API-Referenz

Entdecken Sie die API-Referenz für IronPDF, die die Details aller IronPDF-Funktionen, Namespaces, Klassen, Methoden, Felder und Enums beschreibt.

Sehen Sie sich die IronPDF API-Referenz an
Documentation related to Tutorial Schnellzugriff
Chaknith Bin
Software-Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.