Aktualisiert 11. Februar 2025
Teilen Sie:

HTML zu PDF in C# .NET

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

Als Entwickler von IronPDF wissen wir, wie wichtig es ist, dass die Konvertierung von HTML in PDF genaue, qualitativ hochwertige Ergebnisse liefert, die den Kundenerwartungen entsprechen. Dieses C#-Tutorial führt Sie durch den Aufbau eines HTML-zu-PDF-Konverters für Ihre Anwendungen, Projekte und Websites. Wir werden einen C# HTML-zu-PDF-Konverter entwickeln, und die von IronPDF erzeugten PDF-Dokumente werden pixelgenau zu den vom Google Chrome-Webbrowser erzeugten PDFs sein.


Overview


HTML-zu-PDF-Konverter für C# & VB.NET

Die programmgesteuerte Erstellung von PDF-Dateien in .NET kann eine frustrierende Aufgabe sein. Das PDF-Dateiformat wurde eher für Drucker als für Entwickler entwickelt. Und C# hat nicht viele geeignete Bibliotheken oder Funktionen für die PDF-Generierung eingebaut, viele der Bibliotheken, die auf dem Markt sind, funktionieren nicht out-of-the-box, und verursachen weitere Frustration, wenn sie mehrere Zeilen Code benötigen, um eine einfache Aufgabe zu erfüllen.

Das C# HTML zu PDF Konvertierungstool, das wir in diesem Tutorial verwenden werden, ist IronPDF von Iron Software, eine sehr beliebte C# PDF Generierungs- und Bearbeitungsbibliothek. Diese Bibliothek verfügt über umfassende Funktionen zur PDF-Bearbeitung und -Erzeugung, ist sofort einsatzbereit und erledigt genau das, was Sie brauchen, mit einer minimalen Anzahl von Zeilen, und hathervorragende Dokumentation der über 50 Funktionen. IronPDF zeichnet sich dadurch aus, dass es .NET 8, .NET 7, .NET 6 und .NET 5, .NET Core, Standard und Framework auf Windows, macOS, Linux, Docker, Azure und AWS unterstützt.

Mit C# und IronPDF ist die Logik zum "Erstellen eines PDF-Dokuments" oder zur "HTML-zu-PDF-Konvertierung" einfach. Dank des fortschrittlichen Chrome Renderers von IronPDF werden für das Design und Layout des PDF-Dokuments größtenteils oder vollständig vorhandene HTML-Elemente verwendet.

Diese Methode der dynamischen PDF-Generierung in .NET mit HTML5 funktioniert gleichermaßen gut in Konsolenanwendungen, Windows Forms-Anwendungen, WPF sowie Websites und MVC.

**IronPDF unterstützt auch das Debugging Ihres HTML mit Chrome für Pixel Perfect PDFs. Ein Tutorial zur Einrichtung finden Sie hier.

IronPDF arbeitet in mehreren Sprachen außerhalb und innerhalb des .NET-Ökosystems.

Step 1

Laden Sie die HTML-zu-PDF-C#-Bibliothek herunter und installieren Sie sie

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

Erster Schritt:
green arrow pointer

Visual Studio - NuGet-Paketverwaltung

Klicken Sie in Visual Studio mit der rechten Maustaste auf den Projektmappen-Explorer und wählen Sie "NuGet-Pakete verwalten". Von dort aus suchen Sie einfach nach IronPDF und installieren die neueste Version in Ihre Projektmappe... Klicken Sie in allen Dialogfeldern, die erscheinen, auf OK. Dies funktioniert genauso gut in VB.NET-Projekten.

Install-Package IronPdf

IronPDF auf der NuGet-Website

Für einen umfassenden Überblick über die Funktionen, Kompatibilität und Downloads von IronPDF, besuchen Sie bitte IronPDF auf der offiziellen Website von NuGet: https://www.nuget.org/packages/IronPdf

Installation über DLL

Eine andere Möglichkeit besteht darin, die IronPDF DLL direkt zu installieren. IronPDF kann heruntergeladen und manuell im Projekt oder im GAC installiert werden von https://ironpdf.com/packages/IronPdf.zip


How to Tutorials

Erstellen Sie ein PDF mit einem HTML-String in C# .NET

Wie man: HTML-String in PDF konvertieren? Es ist eine sehr effiziente und lohnende Fähigkeit, eine neue PDF-Datei in C# zu erstellen.

Wir können einfach dieChromePdfRenderer.RenderHtmlAsPdf methode, um jede HTML(HTML5) in eine PDF-Datei umwandeln. Das Rendering von C# HTML zu PDF wird von einer voll funktionsfähigen Version der Google Chromium-Engine übernommen, die in IronPDF DLL eingebettet ist.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-1.cs
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1> Hello IronPdf </h1>");
pdf.SaveAs("pixel-perfect.pdf");
Imports IronPdf

Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf("<h1> Hello IronPdf </h1>")
pdf.SaveAs("pixel-perfect.pdf")
$vbLabelText   $csharpLabel

RenderHtmlAsPdf unterstützt vollständig HTML5, CSS3, JavaScript und Bilder. Wenn sich diese Assets auf einer Festplatte befinden, sollten wir möglicherweise den zweiten Parameter von RenderHtmlAsPdf auf das Verzeichnis setzen, das die Assets enthält. Diese Methode gibt ein PdfDocument-Objekt zurück, welches eine Klasse ist, die zur Speicherung von PDF-Informationen verwendet wird.

IronPDF rendert Ihr HTML genau so, wie es in Chrome angezeigt wird

Wir haben ein komplettes Tutorial erstellt, in dem Sie Chrome für ein vollständiges HTML-Debugging einrichten können, um sicherzustellen, dass die Änderungen, die Sie dort bei der Bearbeitung von HTML, CSS und JavaScript sehen, pixelgenau mit der PDF-Ausgabe von IronPDF übereinstimmen, wenn Sie sich für das Rendern entscheiden. Die Anleitung dazu finden Sie hier:Debuggen von HTML in Chrome zur Erstellung pixelgenauer PDFs.

BaseUrlPath:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-2.cs
using IronPdf;

// this will render C:\MyProject\Assets\image1.png
var pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", @"C:\MyProject\Assets\");
Imports IronPdf

' this will render C:\MyProject\Assets\image1.png
Private pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", "C:\MyProject\Assets\")
$vbLabelText   $csharpLabel

Alle referenzierten CSS-Stylesheets, Bilder und JavaScript-Dateien sind relativ zum BaseUrlPath und können in einer sauberen und logischen Struktur gehalten werden. Sie können natürlich auch Bilder, Stylesheets und Assets online referenzieren, einschließlich Webfonts wie Google Fonts und sogar jQuery.


PDF mit vorhandener URL exportieren

URL zu PDF

(URL zu PDF)

Das Rendering vorhandener URLs als PDFs mit C# ist sehr effizient und intuitiv. Dies ermöglicht es Teams auch, die Arbeit an der PDF-Gestaltung und dem Backend-PDF-Rendering auf mehrere Teams zu verteilen.

Lassen Sie uns im folgenden Beispiel eine Seite von Wikipedia.com darstellen:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-3.cs
using IronPdf;

// Create a PDF from any existing web page
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("wikipedia.pdf");
Imports IronPdf

' Create a PDF from any existing web page
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
pdf.SaveAs("wikipedia.pdf")
$vbLabelText   $csharpLabel

Sie werden feststellen, dass Hyperlinks und sogar HTML-Formulare in der von unserem C#-Code erzeugten PDF-Datei erhalten bleiben.

Beim Rendern bestehender Webseiten gibt es einige Tricks, die wir vielleicht anwenden möchten:

Druck und Bildschirm-CSS

In modernem CSS3 haben wir css-Direktiven für Druck und Bildschirm. Wir können IronPDF anweisen, "Print"-CSSs zu rendern, die oft vereinfacht oder übersehen werden. Standardmäßig werden die CSS-Stile "Screen" gerendert, dieIronPDF benutzer als besonders intuitiv empfunden haben.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-4.cs
using IronPdf;
using IronPdf.Rendering;

renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
// or
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
Imports IronPdf
Imports IronPdf.Rendering

renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
' or
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
$vbLabelText   $csharpLabel

Hauptseite: Einen vollständigen Vergleich mit Bildern von Bildschirm und Druck finden Sie hierhier.

JavaScript

IronPDF unterstützt JavaScript, jQuery und sogar AJAX. Wir müssen möglicherweise Folgendes anweisenIronPDF wartet auf JS oder Ajax zu beenden, bevor ein Schnappschuss unserer Webseite gerendert wird.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-5.cs
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500); // milliseconds
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wir können die Übereinstimmung mit dem JavaScript-Standard demonstrieren, indem wir eine erweiterted3.js JavaScript-Akkorddiagramm aus einem CSV-Datensatz wie diesem:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-6.cs
using IronPdf;

// Create a PDF Chart a live rendered dataset using d3.js and javascript
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
pdf.SaveAs("chart.pdf");
Imports IronPdf

' Create a PDF Chart a live rendered dataset using d3.js and javascript
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006")
pdf.SaveAs("chart.pdf")
$vbLabelText   $csharpLabel

Reaktionsfähiges CSS

HTML zu PDF mit Antwort-CSS in .NET! Reaktionsfähige Webseiten sind für die Anzeige in einem Browser konzipiert. IronPDF öffnet kein echtes Browserfenster innerhalb des Betriebssystems Ihres Servers. Dies kann dazu führen, dass responsive Elemente in ihrer kleinsten Größe gerendert werden.

Wir empfehlen die Verwendung von Print css media types, um dieses Problem zu umgehen. Druck-CSS sollte normalerweise nicht responsiv sein.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-7.cs
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
$vbLabelText   $csharpLabel

Erzeugen einer PDF-Datei aus einer HTML-Seite

Wir können auch jede HTML-Seite auf unserer Festplatte in PDF umwandeln. Alle relativen Assets wie CSS, Bilder und js werden so gerendert, als ob die Datei über das file://-Protokoll geöffnet worden wäre.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-8.cs
using IronPdf;

// Create a PDF from an existing HTML using C#
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
pdf.SaveAs("Invoice.pdf");
Imports IronPdf

' Create a PDF from an existing HTML using C#
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")
pdf.SaveAs("Invoice.pdf")
$vbLabelText   $csharpLabel

Diese Methode hat den Vorteil, dass der Entwickler die Möglichkeit hat, den HTML-Inhalt während der Entwicklung in einem Browser zu testen. Wir empfehlen Chrome, da dies der Webbrowser ist, auf dem die Rendering-Engine von IronPDF basiert.

UmrechnenXML to PDF können Sie XSLT-Templates verwenden, um Ihre XML-Inhalte im PDF-Format zu drucken.


Benutzerdefinierte Kopf- und Fußzeilen hinzufügen

Kopf- und Fußzeilen können beim Rendern von PDF-Dateien oder mit IronPDF zu bestehenden PDF-Dateien hinzugefügt werden.

Mit IronPDF können Kopf- und Fußzeilen mit der Klasse TextHeaderFooter einfache textbasierte Inhalte enthalten - oder mit der Klasse HtmlHeaderFooter Bilder und umfangreiche HTML-Inhalte.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-9.cs
using IronPdf;

// Create a PDF from an existing HTML
var renderer = new ChromePdfRenderer
{
    RenderingOptions =
    {
        MarginTop = 50, //millimeters
        MarginBottom = 50,
        CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print,
        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
        }
    }
};

var pdf = renderer.RenderHtmlFileAsPdf("assets/TestInvoice1.html");
pdf.SaveAs("Invoice.pdf");

// This neat trick opens our PDF file so we can see the result
System.Diagnostics.Process.Start("Invoice.pdf");
Imports IronPdf

' Create a PDF from an existing HTML
Private renderer = New ChromePdfRenderer With {
	.RenderingOptions = {
		MarginTop = 50, MarginBottom = 50, CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print, 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
		}
	}
}

Private pdf = renderer.RenderHtmlFileAsPdf("assets/TestInvoice1.html")
pdf.SaveAs("Invoice.pdf")

' This neat trick opens our PDF file so we can see the result
System.Diagnostics.Process.Start("Invoice.pdf")
$vbLabelText   $csharpLabel

Erkunden Sie alle Rendering-Optionen im folgenden How-to-Artikel:So verwenden Sie die Rendering-Optionen.

HTML-Kopf- und -Fußzeilen

Die Klasse "HtmlHeaderFooter" ermöglicht die Erstellung umfangreicher Kopf- und Fußzeilen mit HTML5-Inhalten, die sogar Bilder, Stylesheets und Hyperlinks enthalten können.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-10.cs
using IronPdf;

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};
Imports IronPdf

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
$vbLabelText   $csharpLabel

Dynamische Daten in PDF-Kopf- und -Fußzeilen

Wir können Inhalte in den Text und sogar in den HTML-Code von Kopf- und Fußzeilen einfügen, indem wir Platzhalter wie z. B. "mail-merge" verwenden:

  • {seite} für die aktuelle Seitenzahl
  • {gesamt-Seiten} für die Gesamtzahl der Seiten in der PDF-Datei
  • {url} für die URL der gerenderten PDF-Datei, wenn diese von einer Webseite gerendert wird
  • {datum} für das heutige Datum
  • {zeit} für die aktuelle Zeit
  • {html-title} für das Attribut Titel des gerenderten HTML-Dokuments
  • {pdf-Titel} für den Dokumententitel, der über ChromePdfRenderOptions festgelegt werden kann

C# HTML-zu-PDF-Konvertierungseinstellungen

Es gibt viele Nuancen, wie unsere Nutzer und Kunden die Darstellung von PDF-Inhalten erwarten.

Die Klasse "ChromePdfRenderer" enthält eine Eigenschaft RenderingOptions, mit der diese Optionen eingestellt werden können.

So können wir beispielsweise festlegen, dass nur CSS3-Direktiven im Stil von "print" akzeptiert werden:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-11.cs
using IronPdf;

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Imports IronPdf

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
$vbLabelText   $csharpLabel

Möglicherweise möchten wir auch die Größe unserer Druckränder ändern, um mehr Leerraum auf der Seite zu schaffen, um Platz für große Kopf- oder Fußzeilen zu schaffen oder sogar Nullränder für den kommerziellen Druck von Broschüren oder Postern festzulegen:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-12.cs
using IronPdf;

renderer.RenderingOptions.MarginTop = 50; // millimeters
renderer.RenderingOptions.MarginBottom = 50; // millimeters
Imports IronPdf

renderer.RenderingOptions.MarginTop = 50 ' millimeters
renderer.RenderingOptions.MarginBottom = 50 ' millimeters
$vbLabelText   $csharpLabel

Wir können Hintergrundbilder von HTML-Elementen ein- oder ausschalten:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-13.cs
using IronPdf;

renderer.RenderingOptions.PrintHtmlBackgrounds = true;
Imports IronPdf

renderer.RenderingOptions.PrintHtmlBackgrounds = True
$vbLabelText   $csharpLabel

Es ist auch möglich, unsere Ausgabe-PDFs so einzustellen, dass sie auf jeder virtuellen Papiergröße gerendert werden - einschließlich Hoch- und Querformat und sogar benutzerdefinierten Größen, die in Millimetern oder Zoll eingestellt werden können.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-14.cs
using IronPdf;
using IronPdf.Rendering;

renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
Imports IronPdf
Imports IronPdf.Rendering

renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
$vbLabelText   $csharpLabel

Erkunden Sie alle Renderoptionen im folgenden Anleitungsartikel: "So verwenden Sie die Rendering-Optionen."


HTML-Vorlagen anwenden

Die Erstellung von PDF-Vorlagen oder -Stapeln ist eine häufige Anforderung von Internet- und Website-Entwicklern.

Anstatt ein PDF-Dokument selbst als Vorlage zu erstellen, können wir mit IronPDF unsere HTML-Vorlage mit Hilfe bestehender, bewährter Technologien erstellen. Wenn die HTML-Vorlage mit Daten aus einem Query-String oder einer Datenbank kombiniert wird, entsteht ein dynamisch generiertes PDF-Dokument.

Im einfachsten Fall ist die Verwendung der C#-Methode String.Format für ein einfaches Beispiel geeignet.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-15.cs
using System;


String.Format("<h1>Hello {0} !</h1>", "World");
Imports System


String.Format("<h1>Hello {0} !</h1>", "World")
$vbLabelText   $csharpLabel

Wenn die HTML-Datei länger ist, können wir oft beliebige Platzhalter wie verwenden[[NAME]] und ersetzen sie später durch echte Daten.

Im folgenden Beispiel werden 3 PDFs erstellt, die jeweils auf einen Benutzer zugeschnitten sind.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-16.cs
var htmlTemplate = "<p>[[NAME]]</p>";
var names = new[] { "John", "James", "Jenny" };
foreach (var name in names)
{
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
    var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
    pdf.SaveAs(name + ".pdf");
}
Dim htmlTemplate = "<p>[[NAME]]</p>"
Dim names = { "John", "James", "Jenny" }
For Each name In names
	Dim htmlInstance = htmlTemplate.Replace("[[NAME]]", name)
	Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance)
	pdf.SaveAs(name & ".pdf")
Next name
$vbLabelText   $csharpLabel

Erweiterte Vorlagenerstellung mit Handlebars.NET

Eine ausgefeilte Methode zur Zusammenführung von C#-Daten mit HTML für die PDF-Erzeugung ist die Verwendung des Handlebars-Templating-Standards.

Mit Handlebars ist es möglich, dynamisches HTML aus C#-Objekten und Klasseninstanzen einschließlich Datenbankeinträgen zu erstellen. Handlebars ist besonders effektiv, wenn eine Abfrage eine unbekannte Anzahl von Zeilen zurückgibt, wie zum Beispiel bei der Erstellung einer Rechnung.

Zunächst müssen wir ein zusätzliches NuGet-Paket zu unserem Projekt hinzufügen: https://www.nuget.org/packages/Handlebars.NET/

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-17.cs
var source =
    @"<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>";
var template = Handlebars.Compile(source);

var data = (title: "My new post", body: "This is my first post!");

var result = template(data);

/* Would render:
<div class="entry">
  <h1>My New Post</h1>
  <div class="body">
    This is my first post!
  </div>
</div>
*/
Dim source = "<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>"
Dim template = Handlebars.Compile(source)

Dim data = (title:= "My new post", body:= "This is my first post!")

Dim result = template(data)

' Would render:
'<div class="entry">
'  <h1>My New Post</h1>
'  <div class="body">
'    This is my first post!
'  </div>
'</div>
'
$vbLabelText   $csharpLabel

Zum Rendern dieses HTML können wir einfach die Methode "RenderHtmlAsPdf" verwenden.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-18.cs
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
pdf.SaveAs("Handlebars.pdf");
Imports IronPdf

Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderHtmlAsPdf(htmlInstance)
pdf.SaveAs("Handlebars.pdf")
$vbLabelText   $csharpLabel

Sie können mehr über den Handlebars-HTML-Templating-Standard und seine Verwendung mit C# erfahren unter https://github.com/rexm/Handlebars.NET

Seitenumbrüche mit HTML5 hinzufügen

Eine häufige Anforderung in einem PDF-Dokument ist die Seitennummerierung. Entwickler müssen kontrollieren, wo PDF-Seiten beginnen und enden, um ein sauberes, lesbares Layout zu erhalten.

Am einfachsten geht dies mit einem weniger bekannten CSS-Trick, mit dem ein Seitenumbruch in jedes gedruckte HTML-Dokument eingefügt werden kann.

<div style='page-break-after: always;'>&nbsp;</div>
<div style='page-break-after: always;'>&nbsp;</div>
HTML

Das mitgelieferte HTML funktioniert zwar, ist aber kaum die beste Praxis. Wir empfehlen, das Media-Attribut wie im folgenden Beispiel anzupassen. Eine so saubere und übersichtliche Art, mehrseitige HTML-Inhalte zu gestalten.

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css" media="print">
      .page{
        page-break-after: always;
        page-break-inside: avoid;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <h1>This is Page 1</h1>
    </div>
    <div class="page">
      <h1>This is Page 2</h1>
    </div>
    <div class="page">
      <h1>This is Page 3</h1>
    </div>
  </body>
</html>
<!DOCTYPE html>
<html>
  <head>
    <style type="text/css" media="print">
      .page{
        page-break-after: always;
        page-break-inside: avoid;
      }
    </style>
  </head>
  <body>
    <div class="page">
      <h1>This is Page 1</h1>
    </div>
    <div class="page">
      <h1>This is Page 2</h1>
    </div>
    <div class="page">
      <h1>This is Page 3</h1>
    </div>
  </body>
</html>
HTML

Die How-To-Skizze mehrtipps und Tricks mit Seitenumbrüchen


Ein Deckblatt an eine PDF-Datei anhängen

IronPDF macht es einfach, PDF-Dokumente zusammenzuführen. Die häufigste Anwendung dieser Technik ist das Hinzufügen eines Deckblatts oder einer Rückseite zu einem bereits gerenderten PDF-Dokument.

Zu diesem Zweck wird zunächst ein Deckblatt gerendert und dann die Funktion "PdfDocument.Merge()statische Methode, um die 2 Dokumente zu kombinieren.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-19.cs
using IronPdf;

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
var pdfMerged = PdfDocument.Merge(new PdfDocument("CoverPage.pdf"), pdf).SaveAs("Combined.Pdf");
Imports IronPdf

Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/")
Private pdfMerged = PdfDocument.Merge(New PdfDocument("CoverPage.pdf"), pdf).SaveAs("Combined.Pdf")
$vbLabelText   $csharpLabel

Ein vollständiges Codebeispiel finden Sie hier:PDF Deckblatt Code Beispiel


Hinzufügen eines Wasserzeichens

Ein FinaleC# PDF funktion, die IronPDF unterstützt, ist das Hinzufügen eines Wasserzeichens zu Dokumenten. Damit kann auf jeder Seite ein Hinweis angebracht werden, dass ein Dokument "vertraulich" oder ein "Muster" ist.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-20.cs
using IronPdf;
using IronPdf.Editing;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Watermarks all pages with red "SAMPLE" text at a custom location.
// Also adding a link to the watermark on-click
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 0, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf
Imports IronPdf.Editing

Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
' Watermarks all pages with red "SAMPLE" text at a custom location.
' Also adding a link to the watermark on-click
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 0, VerticalAlignment.Middle, HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
$vbLabelText   $csharpLabel

Ein vollständiges Codebeispiel finden Sie hier:Beispiel für einen PDF-Wasserzeichen-Code


Laden Sie C#-Quellcode herunter

Der vollständige Free HTML to PDF Converter C# Source Code für dieses Tutorial steht als gezippte Visual Studio 2022 Projektdatei zum Download bereit. Es wird seine Rendering-Engine verwenden, um PDF-Dokumentobjekte in C# zu generieren.

Laden Sie dieses Lernprogramm als Visual Studio-Projekt herunter

Der kostenlose Download enthält alles, was Sie brauchen, um ein PDF aus HTML zu erstellen - einschließlich funktionierender C#-PDF-Code-Beispiele für:

  1. Konvertieren eines HTML-Strings in PDF mit C#

  2. HTML-Datei zu PDF in C#(unterstützung von CSS, JavaScript und Bildern)

  3. C# HTML zu PDF mit einer URL("URL zu PDF")

  4. C#-Beispiele für PDF-Bearbeitung und -Einstellungen

  5. Rendering von JavaScript-Canvas-Diagrammen wie d3.js in einer PDF-Datei

  6. Die PDF-Bibliothek für C#

Klassenreferenz

Für Entwickler ist vielleicht auch die Referenz der Klasse "IronPDF.PdfDocument" interessant:

https://ironpdf.com/object-reference/api/IronPdf.PdfDocument.html

Dieses Objektmodell zeigt, wie PDF-Dokumente aussehen können:

  • Verschlüsselt und passwortgeschützt
  • Bearbeitet oder mit neuem HTML-Inhalt "gestempelt
  • Verbessert mit Vorder- und Hintergrundbildern
  • Zusammenführen, Verbinden, Abschneiden und Zusammenfügen auf Seiten- oder Dokumentebene
  • OCR verarbeitet, um Klartext und Bilder zu extrahieren

Blazor HTML zu PDF

Das Hinzufügen der HTML-zu-PDF-Funktionalität zu Ihrem Blazor-Server ist ganz einfach und unkompliziert:

  1. Erstellen Sie ein neues Blazor-Serverprojekt oder verwenden Sie ein bestehendes Projekt

  2. Fügen Sie die IronPDF-Bibliothek mit NuGet zu Ihrem Projekt hinzu

  3. Fügen Sie eine neue Razor-Komponente hinzu oder verwenden Sie eine vorhandene Komponente

  4. Ein InputTextArea hinzufügen und mit IronPDF verknüpfen

  5. IronPDF kümmert sich um den Rest und stellt

    Die vollständige Schritt-für-Schritt-Anleitung mit Bildern und Codebeispielen finden Sie unterhier.

    Blazor Tutorial 3 related to Blazor HTML zu PDF

Vergleich mit anderen PDF-Bibliotheken

IronPDF ist eine leistungsstarke und umfassende PDF-Bibliothek, die speziell für moderne .NET-Entwickler entwickelt wurde. Mit der nativen HTML-zu-PDF-Konvertierung, die von einer fortschrittlichen Chromium-Engine angetrieben wird, einer intuitiven API und regelmäßigen Updates, vereinfacht es die Entwicklung und gewährleistet gleichzeitig hochwertige Ergebnisse. Werfen wir einen genaueren Blick darauf, wie es im Vergleich zu anderen Tools abschneidet:

PDFSharp

  • Kernfunktionen: PdfSharp ist eine Open-Source-Bibliothek, die grundlegende PDF-Erstellung und -Bearbeitung unterstützt. Allerdings fehlt ihm die eingebaute Konvertierung von HTML zu PDF, die entscheidend für die genaue Darstellung von Webinhalten ist.
  • Moderne Standards: IronPDF nutzt moderne Webtechnologien, einschließlich HTML, CSS und JavaScript, durch seine auf Chromium basierende Engine, um sicherzustellen, dass PDFs ein zeitgemäßes Erscheinungsbild behalten.
  • Support & Updates: PdfSharp erhält seltene Updates und bietet keinen offiziellen Support, während IronPDF monatliche Updates, Sicherheitspatches und professionelle Unterstützung bietet—was es ideal für Enterprise-Anwendungen macht. wkhtmltopdf
  • Einfache Integration: wkhtmltopdf erfordert Befehlszeilenoperationen und die manuelle Konfiguration von Abhängigkeiten, was die Integration mit .NET-Anwendungen umständlicher macht.
  • Rendering-Technologie: wkhtmltopdf basiert auf einer veralteten WebKit-Engine, die mit modernem JavaScript und CSS Schwierigkeiten hat und oft zu lange braucht, um Ausgaben zu erzeugen – insbesondere bei dynamischen, inhaltsreichen Websites. Der Chromium-Engine von IronPDF bietet präzises und zuverlässiges Rendering.
  • Fortlaufende Entwicklung: wkhtmltopdf hat seit 2022 nur wenig aktive Entwicklung erfahren und bietet eingeschränkten Support, während IronPDF sich mit häufigen Updates und engagiertem Kundenservice ständig weiterentwickelt.
  • Sicherheitslücke

iTextSharp

  • HTML-zu-PDF Rendering: Die kostenlose Version von iTextSharp bietet keine native HTML-zu-PDF-Konvertierung, was Entwickler oft dazu zwingt, komplizierte Umgehungslösungen zu verwenden. IronPDF hingegen bietet eine nahtlose Umwandlung mit voller Unterstützung für moderne Webtechnologien.
  • Entwicklererfahrung: Die Low-Level-API von iTextSharp kann umständlich und zeitaufwendig sein, was die Entwicklung verlangsamen kann. IronPDF bietet eine saubere und intuitive C# API, die das Programmieren vereinfacht und die Projektauslieferung beschleunigt.
  • Wartung & Support: IronPDF bietet professionellen Support und regelmäßige Updates, die Sicherheit und Effizienz gewährleisten, während die kostenlose Version von iTextSharp veraltet ist und keinen offiziellen Support bietet.
  • Lizenz ist lästig

Aspose.PDF

  • Konvertierungsqualität: Aspose.PDF ist ein leistungsfähiges Tool, aber seine HTML-zu-PDF-Konvertierung hat Einschränkungen und kann Schwierigkeiten mit modernem CSS und JavaScript haben. Aspose erlaubt keine direkte URL-zu-PDF-Konvertierung, daher müssen Entwickler das HTML manuell herunterladen oder den Inhalt streamen, was zusätzliche Schritte erfordert. Selbst nach diesen Maßnahmen fehlen dem resultierenden PDF oft Stile, Layoutelemente und dynamische Inhalte. Das Chromium-basierte Engine von IronPDF gewährleistet eine hochpräzise Umwandlung komplexer Weblayouts.
  • API-Benutzerfreundlichkeit: Die API von Aspose.PDF kann umständlich und schwierig zu navigieren sein, während IronPDF den Schwerpunkt auf eine entwicklerfreundliche Erfahrung legt, die die Einrichtungszeit minimiert und die Produktivität steigert.
  • Leistung: Die optimierte Verarbeitung von IronPDF sorgt für schnellere Umwandlungsgeschwindigkeiten und eine bessere Leistung, was es zu einer starken Wahl für Unternehmensanwendungen mit hohem Volumen an PDF-Generierungsbedarf macht.

Syncfusion PDF

  • API-Komplexität: Syncfusion PDF ist ein leistungsstarkes Werkzeug, aber verfügt über eine komplexere API, die die Entwicklung verlangsamen kann. IronPDF bietet im Gegensatz dazu eine unkomplizierte API für die schnelle Integration.
  • Rendering Engine: Syncfusion unterstützt sowohl WebKit- als auch Blink-Engines. Obwohl Blink schneller als WebKit ist, zeigen Tests unter realen Bedingungen, dass die Blink-Engine von Syncfusion immer noch langsamer arbeitet als die Chromium-Rendering-Engine von IronPDF. Darüber hinaus hat Syncfusion Schwierigkeiten, komplexe Seiten vollständig zu erfassen und lässt einige dynamisch geladene Abschnitte sowie bestimmte CSS-Stile aus. Der Chromium-Engine von IronPDF sorgt für präzises und konsistentes Rendering, selbst bei modernen Websites mit umfangreichem JavaScript und CSS.
  • Erweiterte Funktionen: Neben der Standardkonvertierung bietet IronPDF leistungsstarke Funktionen wie digitale Signaturen, Anmerkungen, Formularausfüllung, OCR und Barcode-Generierung, die Ihren Projekten zusätzlichen Wert verleihen.

Rendering-Vergleich

Um die Qualität der HTML-zu-PDF-Konvertierung dieser Bibliotheken zu vergleichen, haben wir die Reddit-Seite verwendet, die dynamische Inhalte, Live-Updates, moderne CSS und auf JavaScript basierende Elemente enthält:

https://www.reddit.com/

Screenshot der Reddit-Startseite

Hier sind die Ergebnisse(Klicken Sie auf jedes Bild, um es vergrößert anzusehen):

IronPDF

Ausgabe der IronPDF-Konvertierung der Reddit-Startseite von HTML zu PDF Gut formatierte und visuell präzise PDF, die dynamische Inhalte und modernes Styling beibehalten. Ergebnis der Syncfusion-Konvertierung von Reddit-Startseite von HTML zu PDF Converted successfully but missed most of the sections and styling, especially dynamic content. Initially blocked by Reddit. Achieving better results requires extensive tuning with command-line arguments, yet the output still falls short.

Aspose.PDF

Ausgabe der Aspose.PDF-Konvertierung der Reddit-Startseite von HTML zu PDF Required manual HTML download first (since Aspose does not support direct URL conversion). Even after conversion, output lacked proper formatting and missed almost everything in the sections.

Wkhtmltopdf

Ausgabe der Aspose.PDF-Konvertierung der Reddit-Startseite von HTML zu PDF wkhtmltopdf hat die Umwandlung schnell abgeschlossen — aber das Ergebnis war eine einfache, statische Seite, der wichtige Inhalte wie Live-Updates, dynamische Elemente und interaktive Abschnitte fehlten. Dies macht wkhtmltopdf ungeeignet für moderne, dynamische Webseiten. **Hinweis**: Sowohl PdfSharp als auch iTextSharp unterstützen die native HTML-zu-PDF-Konvertierung nicht und wurden von diesem Test ausgeschlossen. Entwickler, die diese Bibliotheken verwenden, müssten sich auf Drittanbieter-Tools für das HTML-Rendering verlassen. ### Schlussfolgerung Für .NET-Entwickler, die nach einer modernen und zuverlässigen PDF-Lösung suchen, steht IronPDF dem Wettbewerb voraus. Die nahtlose HTML-zu-PDF-Konvertierung, die Benutzerfreundlichkeit, regelmäßige Aktualisierungen und der umfassende Funktionsumfang machen es zu einer erstklassigen Wahl. Egal, ob Sie an einem kleinen Projekt oder einer groß angelegten Unternehmensanwendung arbeiten, IronPDF steigert die Produktivität und vermeidet dabei die Risiken, die mit veralteten oder nicht unterstützten Bibliotheken verbunden sind. Entwickelt für kommerzielle Anwendungen, sorgt IronPDF dafür, dass Ihre Projekte robust, effizient und zukunftssicher bleiben. In direkten Tests mit realen dynamischen Websites lieferte IronPDF die schnellsten und genauesten Ergebnisse. Syncfusion war langsamer und hat die meisten Abschnitte verpasst. Aspose erforderte zunächst das Herunterladen von HTML und konnte dennoch nicht korrekt rendern. wkhtmltopdf lieferte statische HTML-Inhalte ohne die Stilvorlagen zu erfassen – eine schlechte Wahl für moderne Websites. Dies bestätigt, dass IronPDF das beste Gleichgewicht zwischen Geschwindigkeit, Genauigkeit und Benutzerfreundlichkeit für moderne HTML-zu-PDF-Arbeitsabläufe bietet. Entdecken Sie die umfassende Funktionssuite von IronPDF, die dynamisches, komplexes CSS-HTML mühelos in PDF konvertiert – testen Sie es jetzt mit unserem[kostenloser Test](trial-license).**
## HTML zu PDF Tutorial Video ansehen
Mit dem PDF-Dokument können Sie den folgenden Link besuchen, um zu erfahren, wie man[eine PDF in Chrome öffnen, ohne sie herunterzuladen](https://knowledge.workspace.google.com/kb/how-to-open-a-pdf-file-without-downloading-it-000002252).

Tutorial Quick Access

Brand Visual Studio related to Tutorial Quick Access

Download this Tutorial as C# Source Code

The full free HTML to PDF C# Source Code for this tutorial is available to download as a zipped Visual Studio project file.

Download

Explore this Tutorial on GitHub

The source code for this project is available in C# and VB.NET on GitHub.

Use this code as an easy way to get up and running in just a few minutes. The project is saved as a Microsoft Visual Studio 2017 project, but is compatible with any .NET IDE.

C# HTML to PDF VB.NET HTML to PDF
Github Icon related to Tutorial Quick Access
Html To Pdf Icon related to Tutorial Quick Access

Download the C# PDF Quickstart guide

To make developing PDFs in your .NET applications easier, we have compiled a quick-start guide as a PDF document. This "Cheat-Sheet" provide quick access to common functions and examples for generating and editing PDFs in C# and VB.NET - and may help save time in getting started using IronPDF in your .NET project.

Download

View the API Reference

Explore the API Reference for IronPDF, outlining the details of all of IronPDF’s features, namespaces, classes, methods fields and enums.

View the API Reference
Documentation related to Tutorial Quick Access
.NET Software Engineer Für viele ist dies der effizienteste Weg, PDF-Dateien aus .NET zu generieren, da keine zusätzliche API erlernt werden muss oder ein komplexes Designsystem zu navigieren ist

Jean Ashberg

.NET Software-Ingenieur

Jean ist ein unabhängiger Softwareentwickler für unternehmensinterne Informationslösungen mit Sitz in Massachusetts, USA.

Jean war ein früher Anwender von IronPDF und war wiederholt in die Spezifikation von Produktverbesserungen und den Aufbau einer Roadmap zur Schaffung einer einzigen stabilen Bibliothek für C# involviert, die alle wichtigen Anwendungsfälle für PDF-Produktfeatures abdeckt.