IRONPDF VERWENDEN

PDF in C# aus HTML-Datei erstellen

Aktualisiert 20. Januar 2024
Teilen Sie:

IronPDF konvertiert programmgesteuert HTML- in PDF-Dokumente.

Erstellen einer PDF-Datei in C# - Beispiel für die Umwandlung von HTML in PDF

Ein einfaches Beispiel für diese Technik kann sein heruntergeladen und angesehen.

Der Quellcode für diesen gesamten Artikel ist für C# als C# HTML zu PDF Projekt Quellcode herunterladen.

Die folgende Anleitung führt Sie durch den Prozess der Verwendung von IronPDF als PDF-Generator C#. Es deckt sowohl die Grundlagen als auch viele fortgeschrittene C# PDF Themen ab.

HTML zu PDF Komplettlösung

Diese Demo zeigt Ihnen anhand von Beispielen, wie Sie IronPDF verwenden können. Bitte fordern Sie weitere Demos für Anwendungsfälle an.

Die Demo besteht aus Hello World, renderHtmlAsPdf und renderUrlAsPdf beispiele. Alle Beispiele finden Sie unter den entsprechenden Projekten der IronPDF Demo-Lösung.

Schritt 1: Installation

Sie können IronPDF entweder über NuGet installieren. Der Paketname lautet IronPDF.

Oder Sie können verwenden direkter Link zum Herunterladen der Bibliothek.

Schritt 2: Hallo Welt

Sobald Sie IronPDF installiert und in Ihrem Projekt referenziert haben, können Sie es sofort verwenden, indem Sie ein paar Zeichenfolgen eingeben:

var ChromePdfRenderer = new ChromePdfRenderer();  // new instance of ChromePdfRenderer
var ChromePdfRenderer = new ChromePdfRenderer();  // new instance of ChromePdfRenderer
Dim ChromePdfRenderer As New ChromePdfRenderer() ' new instance of ChromePdfRenderer
VB   C#

dann, wenn Sie HTML in PDF umwandeln müssen

// html to turn into pdf
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// turn html to pdf
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
// html to turn into pdf
var html = @"<h1>Hello World!</h1><br><p>This is IronPdf.</p>";
// turn html to pdf
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"));
' html to turn into pdf
Dim html = "<h1>Hello World!</h1><br><p>This is IronPdf.</p>"
' turn html to pdf
Dim pdf = ChromePdfRenderer.RenderHtmlAsPdf(html)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRenderer.Pdf"))
VB   C#

oder wenn Sie eine Webseite in eine PDF-Datei umwandeln möchten

// uri of the page to turn into pdf
var uri = new Uri("http://www.google.com/ncr");
// turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
// uri of the page to turn into pdf
var uri = new Uri("http://www.google.com/ncr");
// turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri);
// save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"));
' uri of the page to turn into pdf
Dim uri As New Uri("http://www.google.com/ncr")
' turn page into pdf
pdf = ChromePdfRenderer.RenderUrlAsPdf(uri)
' save resulting pdf into file
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdf.Pdf"))
VB   C#

Und das war's!

Die entsprechenden Ergebnisse sind:

PDF in C# aus HTML-Datei erstellen, Abbildung 1: Das Ergebnis der Umwandlung von HTML in PDF

Das Ergebnis der Umwandlung von HTML in PDF**

PDF in C# aus HTML-Datei erstellen, Abbildung 2: Das Ergebnis der Konvertierung einer Webseite in eine PDF-Datei

Das Ergebnis der Konvertierung einer Webseite in eine PDF-Datei

Das Codebeispiel finden Sie unter IronPDFDemo.HelloWorld Projekt.

Schritt 3: RenderHtmlAsPdf

Beispiel 1

Um ein realistischeres Beispiel zu bewerten, stellen Sie sich eine HTML-Rechnung vor, die in ein PDF-Dokument umgewandelt werden muss. Hier ist der Code, wie man das macht.

Hinweis: Sie finden Rechnung html unter IronPDFDemo.DemoWebSite Projekt (~/Static/TestInvoice1.html). Bitte beachten Sie, dass die Rechnung über benutzerdefinierte CSS für den Medientyp "Druck" verfügt.

Die Quellrechnung sieht im Browser wie folgt aus:

PDF in C# aus einer HTML-Datei erstellen, Abbildung 4:


Um dies in eine PDF-Datei umzuwandeln, werden die gleichen Codes wie im obigen HelloWorld-Beispiel verwendet, mit dem Unterschied, dass die HTML-Quelldatei verwendet wird.

// read html from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var ChromePdfRenderer = new ChromePdfRenderer();
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));
// read html from file
var html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"));
var ChromePdfRenderer = new ChromePdfRenderer();
using var pdf = ChromePdfRenderer.RenderHtmlAsPdf(html);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"));
' read html from file
Dim html = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "TestInvoice1.html"))
Dim ChromePdfRenderer As New ChromePdfRenderer()
Dim pdf = ChromePdfRenderer.RenderHtmlAsPdf(html)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "ChromePdfRendererExample1.Pdf"))
VB   C#

Das Ergebnis ist:

PDF in C# aus HTML-Datei erstellen, Abbildung 5: Erzeugen einer PDF-Datei aus HTML

Erzeugen einer PDF-Datei aus HTML

Sieht toll aus! Das Codebeispiel finden Sie unter dem IronPDFDemo.RenderHtmlAdPdfDemo-Projekt.

Sehen Sie sich diese Frage auch auf Wie man HTML-Dokumente oder Strings mit Byte-Arrays in IronPDF verwendet

Beispiel 2

In diesem Abschnitt wird die PDF-Datei aus Beispiel 1 angepasst. So werden beispielsweise benutzerdefinierte Ränder, eine Kopfzeile mit einem Dokumententitel, eine Fußzeile mit einem Erstellungsdatum & Seitenzahlen und einige benutzerdefinierte CSS für den Medientyp "Drucken", den eine Standardrechnung hat, hinzugefügt. Zu diesem Zweck wird eine Instanz von "ChromePdfRenderOptions" initialisiert und an den Konstruktor "ChromePdfRenderer" übergeben.

var pdfRenderingOptions= new ChromePdfRenderOptions()
{
    MarginTop = 50,
    MarginBottom = 50,
    TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    },
    TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    },
    CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);
var pdfRenderingOptions= new ChromePdfRenderOptions()
{
    MarginTop = 50,
    MarginBottom = 50,
    TextHeader = new TextHeaderFooter()
    {
        CenterText = "{pdf-title}",
        DrawDividerLine = true,
        FontSize = 16
    },
    TextFooter = new TextHeaderFooter()
    {
        LeftText = "{date} {time}",
        RightText = "Page {page} of {total-pages}",
        DrawDividerLine = true,
        FontSize = 14
    },
    CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
};
var chromePdfRenderer = new ChromePdfRenderer(pdfRenderingOptions);
Dim pdfRenderingOptions= New ChromePdfRenderOptions() With {
	.MarginTop = 50,
	.MarginBottom = 50,
	.TextHeader = New TextHeaderFooter() With {
		.CenterText = "{pdf-title}",
		.DrawDividerLine = True,
		.FontSize = 16
	},
	.TextFooter = New TextHeaderFooter() With {
		.LeftText = "{date} {time}",
		.RightText = "Page {page} of {total-pages}",
		.DrawDividerLine = True,
		.FontSize = 14
	},
	.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
}
Dim chromePdfRenderer As New ChromePdfRenderer(pdfRenderingOptions)
VB   C#

Tipp: Anstatt Optionen als Parameter im Konstruktor zu übergeben, können Sie das entsprechende Feld für eine ChromePdfRenderer-Instanz setzen:

var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;
var chromePdfRenderer = new ChromePdfRenderer();
chromePdfRenderer.RenderingOptions = pdfRenderingOptions;
Dim chromePdfRenderer As New ChromePdfRenderer()
chromePdfRenderer.RenderingOptions = pdfRenderingOptions
VB   C#

Hinweis: Kopf- und Fußzeile verfügen über eine Platzhalterfunktion, d.h. alle Platzhalterfelder ({seite}, {gesamt-Seiten}, {url}, {datum}, {zeit}, {html-title}, {pdf-Titel}) können mit entsprechenden Daten gefüllt werden.

Der Rest des Codes ist derselbe wie in Beispiel 1. Das Ergebnis ist:

PDF in C# aus HTML-Datei erstellen, Abbildung 6: Eine Rechnung mit Kopf- und Fußzeile generieren

Erstellen einer Rechnung mit Kopf- und Fußzeile

Benutzerdefinierte Ränder, Kopf- und Fußzeilen und CSS für den Medientyp "Print" sind jetzt vorhanden. Das Codebeispiel finden Sie unter dem IronPDFDemo.RenderHtmlAdPdfDemo-Projekt. Weitere Einstellungen finden Sie hier in der IronPDF API-Referenz.

Schritt 4: RenderUrlAsPdf

Einrichten

Um die Beispiele in diesem Abschnitt auszuführen, müssen Sie die IronPDFDemo.DemoWebSite lokal hosten. Um dies in IIS Express zu tun:

  1. Zur DemoWebSite navigieren

  2. Rechtsklick > Als StartUp-Projekt festlegen

  3. Start ohne Debugging (Strg+F5)

  4. Navigieren Sie zu Ihrem {basisurl}/Static/TestInvoice1.html, um sicherzustellen, dass sie funktioniert. Dies ist die URL http://localhost:51169/Static/TestInvoice1.html (wird für Sie gleich sein, wenn Sie die entsprechenden Projekteinstellungen nicht ändern).

Beispiel 1

In diesem Abschnitt wird die gehostete DemoWebSite-Rechnung mit demselben Code wie im HelloWorld-Beispiel in eine PDF-Datei umgewandelt. Der Unterschied liegt in der gehosteten URL:

var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));
var uri = new Uri("http://localhost:51169/Static/TestInvoice1.html");
var urlToPdf = new ChromePdfRenderer();
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"));
Dim uri As New Uri("http://localhost:51169/Static/TestInvoice1.html")
Dim urlToPdf = New ChromePdfRenderer()
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample1.Pdf"))
VB   C#

Das Ergebnis ist:

PDF in C# aus einer HTML-Datei erstellen, Abbildung 7: Eine gehostete Website als PDF generieren

Generierung einer gehosteten Website in eine PDF-Datei

Das ist großartig und sieht wie erwartet aus. Das Codebeispiel finden Sie im IronPDFDemo.RenderUrlAsPdfDemo-Projekt.

Beispiel 2

Viele Websites sind häufig durch eine Authentifizierungsmethode geschützt. Dieser Abschnitt verwendet einen angegebenen Benutzernamen und ein Kennwort während des Rendering-Prozesses einer PDF-Datei mit einigen Anpassungen: benutzerdefinierte Ränder, eine Kopfzeile mit dem Titel des Dokuments, eine Fußzeile mit dem Erstellungsdatum und den Seiten sowie benutzerdefiniertes CSS für den Medientyp "Drucken". Die URL für die Rechnung lautet: http://localhost:51169/Rechnung.

Zugriff auf http://localhost:51169/Rechnung führt zu dem Formular "Authentifizierung erforderlich":

PDF in C# aus HTML-Datei erstellen, Abbildung 8: Authentifizierungsformular erforderlich

Authentifizierungsformular erforderlich

Hinweis: Die Anmeldedaten lauten "testUser"/"testPassword".

Wie kann man also die Authentifizierung umgehen? Durch Setzen von "HttpLoginCredentials":

var uri = new Uri("http://localhost:51169/Invoice");
var urlToPdf = new ChromePdfRenderer
{
    PrintOptions = new ChromePdfRenderer()
    {
        MarginTop = 50,
        MarginBottom = 50,
        TextHeader = new TextHeaderFooter()
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },
        TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        },
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    },
    // setting login credentials to bypass basic authentication
    LoginCredentials = new HttpLoginCredentials()
    {
        NetworkUsername = "testUser",
        NetworkPassword = "testPassword"
    }
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));
var uri = new Uri("http://localhost:51169/Invoice");
var urlToPdf = new ChromePdfRenderer
{
    PrintOptions = new ChromePdfRenderer()
    {
        MarginTop = 50,
        MarginBottom = 50,
        TextHeader = new TextHeaderFooter()
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },
        TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        },
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    },
    // setting login credentials to bypass basic authentication
    LoginCredentials = new HttpLoginCredentials()
    {
        NetworkUsername = "testUser",
        NetworkPassword = "testPassword"
    }
};
using var pdf = urlToPdf.RenderUrlAsPdf(uri);
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"));
Dim uri As New Uri("http://localhost:51169/Invoice")
Dim urlToPdf = New ChromePdfRenderer With {
	.PrintOptions = New ChromePdfRenderer() With {
		.MarginTop = 50,
		.MarginBottom = 50,
		.TextHeader = New TextHeaderFooter() With {
			.CenterText = "{pdf-title}",
			.DrawDividerLine = True,
			.FontSize = 16
		},
		.TextFooter = New TextHeaderFooter() With {
			.LeftText = "{date} {time}",
			.RightText = "Page {page} of {total-pages}",
			.DrawDividerLine = True,
			.FontSize = 14
		},
		.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
	},
	.LoginCredentials = New HttpLoginCredentials() With {
		.NetworkUsername = "testUser",
		.NetworkPassword = "testPassword"
	}
}
Dim pdf = urlToPdf.RenderUrlAsPdf(uri)
pdf.SaveAs(Path.Combine(Directory.GetCurrentDirectory(), "UrlToPdfExample2.Pdf"))
VB   C#

Hinweis: Es wird die gleiche Anpassung verwendet wie beim ChromePdfRenderer Example2.

Das Ergebnis ist:

PDF in C# aus einer HTML-Datei erstellen, Abbildung 9: Generieren einer HTML-Seite mit Anmeldeinformationen für eine PDF-Datei

Generieren einer HTML-Site mit Anmeldeinformationen für eine PDF-Datei

Alles ist an seinem Platz. Ein Codebeispiel finden Sie unter IronPDFDemo.RenderUrlAsPdfDemo Projekt. Wenn Sie sich fragen, wie das Ergebnis ohne HttpLoginCredentials aussehen würde, hier ist es:

PDF in C# aus HTML-Datei erstellen, Abbildung 10: Eine leere PDF-Datei ohne Anmeldeinformationen generieren

Erzeugen einer leeren PDF-Datei ohne Anmeldeinformationen

Siehe auch Jean's .NET HTML zu PDF Tutorial

Darüber hinaus kann IronPDF auch auf verschiedene Weise mit PDF interagieren:

< PREVIOUS
Erzeugen von PDF-Dateien in C#
NÄCHSTES >
Wie man PDF-Dateien in ASP.NET mit C# und IronPDF anzeigt

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 11,308,499 Lizenzen anzeigen >