HTML zu PDF C# Konvertierung

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

Als Entwickler von IronPDF verstehen wir, dass PDF-Dokumente, die mit IronPDF erstellt wurden, nicht nur perfekt aussehen müssen, sondern auch exakt den Erwartungen unserer Kunden entsprechen sollen. Dieses C# PDF-Tutorial wird Ihnen beibringen, wie Sie einen HTML-zu-PDF-Konverter für IhreC#-Anwendungen, Projekte und Webseiten. Wir werden einen C# HTML-zu-PDF-Konverter entwickeln, und die von IronPDF erzeugten PDF-Dokumente werden pixelgenau mit den von Google Chrome generierten PDFs identisch sein.

IronPDF Merkmale:

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 kann die Logik von "ein PDF-Dokument erzeugen" oder "Umwandlung von HTML in PDF" ist einfach zu verstehen. 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. Eine Anleitung zum Einrichten dieser Funktion finden Sie unter hier.

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

Herunterladen und Installieren der C#-Bibliothek für die Umwandlung von HTML in PDF

C# NuGet-Bibliothek für PDF

Installieren mit NuGet

Install-Package IronPdf
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für PDF

Installieren mit NuGet

Install-Package IronPdf
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronPDF an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es PDF mit C#.

C# NuGet-Bibliothek für PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

Erwägen Sie die Installation der IronPDF DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronPdf.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen

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

Eine umfassende Übersicht über die Funktionen, die Kompatibilität und die Downloads von IronPDF finden Sie auf der offiziellen NuGet-Website von IronPDF: 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 in das Projekt oder GAC installiert werden von https://ironpdf.com/packages/IronPdf.zip


Anleitungen Tutorials

PDF mit einem HTML-String in C# .NET erstellen

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")
VB   C#

renderHtmlAsPdf" unterstützt vollständig HTML5, CSS3, JavaScript und Bilder. Wenn sich diese Dateien auf einer Festplatte befinden, können wir den zweiten Parameter von "RenderHtmlAsPdf" auf das Verzeichnis der Dateien setzen.

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\")
VB   C#

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")
VB   C#

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
VB   C#

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
VB   C#

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")
VB   C#

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
VB   C#

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")
VB   C#

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")
VB   C#

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>"}
VB   C#

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
VB   C#

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
VB   C#

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
VB   C#

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
VB   C#

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")
VB   C#

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
VB   C#

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>
'
VB   C#

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")
VB   C#

Sie können mehr über den Lenker html templating Standard und seine C# Verwendung von https://github.com/rexm/Handlebars.NET erfahren

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")
VB   C#

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")
VB   C#

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


C#-Quellcode herunterladen

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.


Vergleich mit anderen PDF-Bibliotheken

Beim Konvertieren von HTML zu PDF gibt es mehrere Open-Source-Alternativen online verfügbar, wie iTextSharp und PdfSharp, die auf Plattformen wie GitHub zu finden sind. Diese Bibliotheken sind kostenlos nutzbar, was sie zu attraktiven Optionen für Entwickler macht, die den Kauf einer Bibliothek vermeiden möchten. Die Nutzung dieser Lösungen ohne eine Bibliothek in .NET Core-Projekten kann jedoch Einschränkungen mit sich bringen, insbesondere bei fortgeschrittenen Aufgaben wie der präzisen Darstellung von modernem HTML5, CSS3 oder JavaScript-Inhalt.

Im Gegensatz zu IronPDF, das eine vollständige, funktionsreiche und einfach zu integrierende Lösung für die HTML-zu-PDF-Konvertierung bietet, erfordern Open-Source-Alternativen oft mehr manuellen Aufwand und unterstützen möglicherweise nicht bestimmte Funktionalitäten. IronPDF bietet .NET Core-Entwicklern ein reibungsloseres Erlebnis direkt nach der Installation, indem es ihnen ermöglicht, PDFs zu generieren, ohne viele technische Komplexitäten selbst bewältigen zu müssen.

PDFSharp

PDFSharp ist eine kostenlose Open-Source-Bibliothek, die die logische Bearbeitung und Erstellung von PDF-Dokumenten in .NET ermöglicht.

Ein wesentlicher Unterschied zwischen PDFSharp und IronPDF besteht darin, dass IronPDF über einen eingebetteten Webbrowser verfügt, der die Erstellung von PDFs aus HTML, CSS, JS und Bildern ermöglicht.

Die IronPDF-API unterscheidet sich von PDFSharp auch dadurch, dass sie auf Anwendungsfällen und nicht auf der technischen Struktur von PDF-Dokumenten basiert. Viele finden dies logischer und intuitiver in der Anwendung.

Es kann HTML in PDF konvertieren, aber die Konvertierung von HTML in PDF ist begrenzt: einschließlich .html-Dateien in PDF-Dateien.

wkhtmltopdf

wkhtmltopdf ist eine freie, in C++ geschriebene Open-Source-Bibliothek, mit der PDF-Dokumente aus HTML gerendert werden können.

Ein wesentlicher Unterschied zwischen wkhtmltopdf und IronPDF besteht darin, dass IronPDF in C# geschrieben wurde und stabil und thread-sicher für den Einsatz in .NET-Anwendungen und Websites ist.

IronPDF unterstützt auch CSS3 und HTML5 vollständig, während wkhtmltopdf fast ein Jahrzehnt veraltet ist.

Die IronPDF-API unterscheidet sich von wkhtmltopdf auch dadurch, dass sie über eine umfangreiche und fortschrittliche API verfügt, die es ermöglicht, PDF-Dokumente zu bearbeiten, zu manipulieren, zu komprimieren, zu importieren, zu exportieren, zu signieren, zu sichern und mit einem Wasserzeichen zu versehen.

Die Konvertierung von HTML in PDF mit wkhtmltopdf ist stabil, verwendet aber eine sehr veraltete Rendering-Engine.

iTextSharp

iTextSharp ist eine Open-Source-Teilportierung der iText-Java-Bibliothek für die PDF-Erzeugung und -Bearbeitung. HTML in PDF konvertieren - das ist möglich, aber ich habe bemerkt, dass das Rendering auf das beschränkt ist, was in Java verfügbar ist, oder die HTML-zu-PDF-Konvertierung von wkhtmltopdf unter der LGPL-Open-Sourced-Lizenz verwendet.

Ein wesentlicher Unterschied bei der Umwandlung von HTML in PDF zwischen C#iTextSharp und IronPDF ist, dass IronPDF ein fortschrittlicheres und genaueres HTML-To-PDF-Rendering bietet, indem es einen eingebetteten Chrome-basierten Webbrowser verwendet und nicht das in iText verwendete wkhtmltopdf.

Die IronPDF-API unterscheidet sich von iTextSharp auch dadurch, dass IronPDF explizite Lizenzen für die kommerzielle oder private Nutzung hat, während die AGLP-Lizenz von iTextSharp nur für Anwendungen geeignet ist, bei denen der vollständige Quellcode jedem Nutzer kostenlos zur Verfügung gestellt wird - auch Nutzern im Internet.

Eine vollständige Aufschlüsselung der Unterschiede finden Sie in unsereriTextSharp C# Dokumentationsseite.

Andere kommerzielle Bibliotheken

Aspose PDF, Spire PDF, EO PDF und SelectPdf sind kommerzielle .NET PDF-Bibliotheken anderer Anbieter. IronPDF verfügt über einen vergleichsweise großen Funktionsumfang, ausgezeichnete Kompatibilität, eine gut geschriebene Dokumentation und einen fairen Preis. Sie können den Vergleich zwischen IronPDF, Wettbewerbern und Chrome selbst sehenhier.


HTML zu PDF Tutorial Video ansehen

Mit dem PDF-Dokument können Sie den folgenden Link besuchen, um zu erfahren, wie maneine PDF in Chrome öffnen, ohne sie herunterzuladen.


Tutorial Schnellzugriff

Dieses Tutorial als C#-Quellcode herunterladen

Der vollständige kostenlose HTML to PDF C# Source Code für dieses Tutorial steht als gezippte Visual Studio Projektdatei zum Herunterladen bereit.

Herunterladen

Erkunden Sie dieses Tutorial auf GitHub

Der Quellcode für dieses Projekt ist in C# und VB.NET auf GitHub verfügbar.

Verwenden Sie diesen Code als einfache Möglichkeit, um in nur wenigen Minuten loszulegen. Das Projekt wird als Microsoft Visual Studio 2017 Projekt gespeichert, ist aber mit jeder .NET IDE kompatibel.

C# HTML zu PDF VB.NET HTML zu PDF

Herunterladen the C# PDF Quickstart guide

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

Herunterladen

Ansicht der API-Referenz

Entdecken Sie die API-Referenz für IronPDF, die Details zu allen Funktionen, Namespaces, Klassen, Methoden, Feldern und Enums von IronPDF enthält.

Ansicht der API-Referenz
.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 gehörte zu den frühen Anwendern von IronPDF und war wiederholt an der Spezifizierung von Produktverbesserungen und der Erstellung einer Roadmap für die Entwicklung einer einzigen stabilen Bibliothek für C# beteiligt, die alle wichtigen Anwendungsfälle von PDF-Produkten abdeckt.