HTML zu PDF in C# für .NET Entwickler (Der ultimative Leitfaden)
Einführung
In der heutigen webgetriebenen Welt ist die Fähigkeit, HTML-Inhalte in PDF-Dokumente (Portable Document Format) zu konvertieren, für viele Anwendungen eine entscheidende Funktion. Ob es um die Erstellung von PDF-Dateien aus Berichten, Rechnungen oder die Archivierung von Webinhalten geht, die HTML-zu-PDF-Konvertierung optimiert Arbeitsabläufe und gewährleistet eine einheitliche Formatierung hochwertiger PDFs. Bibliotheken wie IronPDF bieten eine entwicklerfreundliche Möglichkeit, diese Konvertierung durchzuführen und unterstützen dynamische Inhalte, HTML-Formulare sowie die präzise Darstellung von CSS und JavaScript .
Für .NET-Entwickler hat die Verwendung des richtigen HTML-zu-PDF-Konverters Auswirkungen auf die Effizienz, die Einfachheit des Codes und die Qualität der PDF-Erstellung. Moderne Bibliotheken ermöglichen es Entwicklern, HTML-Strings, ganze Webseiten oder HTML-Dateien mit nur wenigen Codezeilen direkt in gerenderte PDF-Dokumente umzuwandeln. Dadurch werden dynamische Dokumente, benutzerdefinierte Header und druckbare Versionen von Webinhalten möglich.
Was Sie lernen werden
In diesem Leitfaden erfahren Sie, wie Sie HTML in C# mithilfe verschiedener Bibliotheken in PDF konvertieren und deren PDF-Konvertierungsfunktionen erkunden, einschließlich der Bearbeitung von PDF-Dokumenten, HTML-Formularen, benutzerdefinierten Rändern und sicheren PDFs. Die folgenden Themen werden wir in diesem Artikel behandeln:
- Warum HTML- und PDF-Werkzeugs vergleichen?
- IronPDF: HTML-zu-PDF-Konvertierung
- Aspose: HTML-zu-PDF-Konvertierung
- iText 9: HTML-zu-PDF-Konvertierung
- wkhtmltopdf: HTML-zu-PDF-Konvertierung
- PuppeteerSharp: HTML-zu-PDF-Konvertierung
- Fazit Warum IronPDF wählen?
Am Ende werden Sie verstehen, warum IronPDF sich als entwicklerfreundlicher und effizienter HTML-zu-PDF-Konverter auszeichnet. Schauen Sie sich unbedingt auch unsere anderen Vergleichsleitfäden an, in denen wir IronPDF genauer unter die Lupe nehmen und mit Aspose.PDF , iText 9 , wkhtmltopdf und PuppeteerSharp vergleichen, um herauszufinden, welches Programm am besten zu Ihrem Projekt passt und warum IronPDF die Nase vorn hat.
Warum sollte man HTML- und PDF-Werkzeugs vergleichen?
Die Auswahl des geeigneten HTML-zu-PDF-Konvertierungstools ist entscheidend, um sicherzustellen, dass Ihre Anwendung die Anforderungen an Leistung, Qualität und Kosten erfüllt. Da zahlreiche Optionen zur Verfügung stehen, die jeweils unterschiedliche PDF-Konvertierungsfunktionen bieten, hilft ein gründlicher Vergleich bei der Entscheidungsfindung. Hier sind die wichtigsten Bewertungskriterien:
- Integrationskomplexität: Wie einfach sich die Bibliothek in Ihre bestehenden .NET-Projekte integrieren lässt, z. B. durch die Verwendung des NuGet-Paketmanagers für eine einfache Installation und die Einrichtung der API-Integration über die Registerkarte.
- Code-Einfachheit: Die Leichtigkeit des Schreibens und Wartens von Quellcode, einschließlich minimaler Codebeispiele, wie z. B. nur wenige Zeilen zum Konvertieren von HTML-Zeichenketten oder ganzen Webseiten in generierte PDF-Dokumente.
- Rendering-Genauigkeit: Die Fähigkeit der Rendering-Engine, HTML-Code, JavaScript-Ausführung, Druck-CSS, HTML-Formulare und andere dynamische Inhalte präzise zu verarbeiten und dabei qualitativ hochwertige PDFs zu erzeugen.
- Leistungsfähigkeit bei hoher Auslastung: Wie gut der PDF-Konverter unter hoher Last bei der Generierung von PDF-Dateien aus mehreren HTML-Seiten oder dynamischen Inhalten abschneidet.
- Lizenzierung und Kosteneffizienz: Die Preismodelle, wie z. B. kommerzielle Lizenzen, und ihre Eignung für das Budget Ihres Projekts.
Durch die Bewertung dieser Faktoren können Entwickler ein Werkzeug auswählen, das sowohl den technischen Anforderungen als auch den finanziellen Rahmenbedingungen entspricht, egal ob sie mit .NET Core- oder .NET Framework-Projekten in Visual Studio arbeiten.
IronPDF: HTML-zu-PDF-Konvertierung
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 1
IronPDF ist eine voll ausgestattete .NET-Bibliothek, die speziell für Entwickler konzipiert wurde. Es bietet sofort einsatzbereite Methoden zur Konvertierung von HTML- Strings, lokalen Dateien und Live-URLs in PDFs mit minimalem Einrichtungsaufwand. Die auf Chrome basierende Rendering-Engine gewährleistet hohe Genauigkeit und unterstützt CSS und JavaScript. IronPDF ist kommerziell, bietet aber starken Support und eine unkomplizierte API.
HTML-String in PDF konvertieren
Mit IronPDF ist die Umwandlung von HTML- Zeichenketten in PDFs ganz einfach. Dieser Ansatz eignet sich ideal für die dynamische Inhaltsgenerierung oder kleine HTML-Snippets.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
pdf.SaveAs("output.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Generiertes PDF-Dokument
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 2
Erläuterung:
ChromePdfRenderer: DieChromePdfRenderer-Klasse ist das primäre Werkzeug zur Konvertierung von HTML in PDF in IronPDF. Es ist vorkonfiguriert und kann die meisten Anwendungsfälle mit minimalem Einrichtungsaufwand bewältigen.RenderHtmlAsPdf: Diese Methode nimmt eine HTML-Zeichenkette als Eingabe und generiert ein PDF-Dokument.SaveAs: Die generierte PDF-Datei wird unter dem angegebenen Pfad (output.pdf) gespeichert.
Lokale HTML-Datei in PDF konvertieren
Für Anwendungen, die eine lokale HTML-Datei (mit externen Ressourcen wie CSS oder JavaScript) konvertieren müssen, macht IronPDF es einfach.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("template.html");
pdf.SaveAs("report.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("template.html")
pdf.SaveAs("report.pdf")
End Sub
End Class
HTML-Eingabedatei
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 3
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 4
Erläuterung:
- RenderHtmlFileAsPdf: Nimmt eine lokale HTML-Datei und konvertiert sie in eine PDF-Datei.
- Verarbeitet automatisch verknüpfte Ressourcen wie externe CSS- und JavaScript-Dateien.
Link zur PDF-Datei
IronPDF ist besonders leistungsstark bei der Konvertierung dynamischer Webinhalte aus URLs , einschließlich Seiten, die JavaScript verwenden.
Example:
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.RenderDelay(3000); // Wait up to 3 seconds for JS to load
PdfDocument pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("url-to-pdf.pdf");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 5
Erläuterung:
- RenderUrlAsPdf: Ruft den URL-Inhalt einschließlich der JavaScript-gerenderten Elemente ab und konvertiert ihn in eine PDF-Datei.
Urteil / Wann anwenden?
IronPDF eignet sich perfekt für Entwickler, die eine einfache API-Integration, minimalen Code und Unterstützung für die Bearbeitung von PDF-Dokumenten, die Erstellung dynamischer Dokumente, HTML-Formulare, benutzerdefinierte Kopfzeilen und druckbare Versionen von Webinhalten benötigen. Ideal für .NET Core- oder .NET Framework-Projekte in Visual Studio.
Aspose: HTML-zu-PDF-Konvertierung
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 6
Aspose.PDF ist eine weitere leistungsstarke Bibliothek zur PDF-Bearbeitung, die auch die Konvertierung von HTML in PDF unterstützt. Schauen wir uns an, wie Aspose die einzelnen Konvertierungsszenarien handhabt:
HTML-String in PDF konvertieren
Aspose erfordert im Vergleich zu IronPDF etwas mehr Aufwand bei der Konvertierung von HTML-Strings.
Example:
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");
using Aspose.Html;
using Aspose.Html.Saving;
Document doc = new Document();
Page page = doc.getPages().Add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().Add(htmlFragment);
doc.Save("HTMLStringUsingDOM.pdf");
Imports Aspose.Html
Imports Aspose.Html.Saving
Private doc As New Document()
Private page As Page = doc.getPages().Add()
Private htmlFragment As New HtmlFragment("<h1>HTML String</h1>")
page.getParagraphs().Add(htmlFragment)
doc.Save("HTMLStringUsingDOM.pdf")
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 7
Erläuterung:
- Document doc: Erstellt ein neues Dokument, in dem die konvertierte HTML-Zeichenfolge gespeichert wird.
- Seite Seite: Diese Zeile fügt dem von uns erstellten leeren Dokument eine neue Seite hinzu.
- HtmlFragment htmlFragment: Dies ist die HTML-Zeichenkette, die wir konvertieren.
- page.getParagraphs().Add(htmlFragment): Fügt den HTML-Code zum Dokument hinzu.
- doc.Save: Speichert das Dokument mit dem HTML-Inhalt als PDF-Dokument.
Lokale HTML-Datei in PDF konvertieren
Aspose kann auch lokale HTML-Dateien in PDFs konvertieren, erfordert aber mehr Konfiguration als IronPDF.
Example:
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
var document = new HTMLDocument("document.html");
var options = new PdfSaveOptions();
Converter.ConvertHTML(document, options, "output.pdf");
Imports Aspose.Html
Imports Aspose.Html.Converters
Imports Aspose.Html.Saving
Private document = New HTMLDocument("document.html")
Private options = New PdfSaveOptions()
Converter.ConvertHTML(document, options, "output.pdf")
HTML-Eingabe:
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 8
Output:
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 9
Erläuterung:
- var document = new HTMLDocument("document.html"): Lädt die HTML-Datei.
- var options: Erstellt ein neues PdfSaveOptions-Objekt.
- Converter.ConvertHTML(): Konvertiert HTML in PDF.
Link zur PDF-Datei
Aspose bietet eine ähnliche Funktionalität für URLs, erfordert jedoch eine zusätzliche Konfiguration.
Example:
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");
using System.IO;
using System;
using System.Net.Http;
using Aspose.Pdf;
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("https://www.apple.com");
response.EnsureSuccessStatusCode();
string responseFromServer = await response.Content.ReadAsStringAsync();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://www.apple.com");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save("WebPageToPDF_out.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 10
Erläuterung:
- Die Variable
dataDirenthält das Verzeichnis, in dem die generierte PDF-Datei gespeichert wird. Es wird eineWebRequesterstellt, um auf die URL der Wikipedia-Hauptseite zuzugreifen, und für die Anfrage werden Standardanmeldeinformationen verwendet. - Die
GetResponse()Methode sendet die Anfrage und empfängt die Antwort als HttpWebResponse. - Aus der Antwort wird ein Datenstrom erzeugt, und ein StreamReader liest den gesamten HTML-Inhalt der Seite in die Zeichenkette
responseFromServerein. - Der HTML-Inhalt von
responseFromServerwird in ein Byte-Array umgewandelt und anschließend in einenMemoryStreamgeladen. - Mit
HtmlLoadOptionskönnen Sie die Basis-URL für relative Links und andere Einstellungen festlegen. - Aus dem Speicherstream, der den HTML-Code enthält, wird ein
Aspose.Pdf.Documenterstellt, und das Dokument wird als PDF im angegebenen Verzeichnis gespeichert.
Urteil / Wann anwenden?
Aspose.PDF eignet sich am besten für Unternehmensprojekte, die neben der Konvertierung auch fortgeschrittene PDF-Bearbeitung erfordern. Es ist leistungsstark, aber für schnelle HTML-zu-PDF-Konvertierungen weniger optimiert.
iText 9: HTML-zu-PDF-Konvertierung
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 11
iText 9 ist die neueste Version der iText PDF-Bibliothek und bietet erweiterte Funktionen zum Generieren und Bearbeiten von PDF-Dokumenten in .NET-Anwendungen. Es führt eine schlankere und erweiterbare API ein, verbessert die Leistung und bietet eine bessere Unterstützung für moderne PDF-Standards.
HTML-String in PDF konvertieren
Hier ist ein einfaches Beispiel, wie man mit iText 9 eine HTML-Zeichenkette in ein PDF-Dokument umwandelt.
Example:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string html = "<h1>Hello World</h1><p>This is a simple PDF generated from HTML.</p>";
string outputFile = "SimpleHtmlToPdf.pdf";
using (var pdfStream = new FileStream(outputFile, FileMode.Create))
{
HtmlConverter.ConvertToPdf(html, pdfStream);
}
System.Console.WriteLine("PDF generated: " + outputFile);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 12
Lokale HTML-Datei in PDF konvertieren
iText 9 kann HTML-Dateien mithilfe der Klasse HtmlConverter.ConvertToPdf in PDF konvertieren.
Example:
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}
using iText.Html2pdf;
using System.IO;
class Program
{
static void Main()
{
string htmlFile = "document.html";
string outputPdf = "html-file-to-pdf.pdf";
// Read HTML content from file
string htmlContent = File.ReadAllText(htmlFile);
// Convert HTML string to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
System.Console.WriteLine("PDF generated: " + outputPdf);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 13
Erläuterung:
- HtmlConverter: Konvertiert eine HTML-Datei direkt in eine PDF-Datei.
Link zur PDF-Datei
iText7 unterstützt auch die Konvertierung von Inhalten aus URLs.
Example:
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}
using iText.Html2pdf;
using System;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://apple.com";
string outputPdf = "url-to-pdf.pdf";
using var httpClient = new HttpClient();
// Fetch the HTML content from the URL
string htmlContent = await httpClient.GetStringAsync(url);
// Convert HTML content to PDF
HtmlConverter.ConvertToPdf(htmlContent, new FileStream(outputPdf, FileMode.Create));
Console.WriteLine("PDF generated: " + outputPdf);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 14
Erläuterung:
- HttpClient.GetStringAsync(url): Lädt den eigentlichen HTML-Inhalt von der URL herunter.
- HtmlConverter.ConvertToPdf(htmlContent, …): Konvertiert die abgerufene HTML-Zeichenkette in ein gerendertes PDF.
Urteil / Wann anwenden?
iText 9 eignet sich für Entwickler, die eine robuste Lösung der Enterprise-Klasse für die PDF-Erstellung, -Bearbeitung und HTML-zu-PDF-Konvertierung benötigen. Es eignet sich gut, wenn Sie eine präzise Kontrolle über das generierte PDF, die Integration in bestehende iText-Workflows oder erweiterte PDF-Funktionen wie digitale Signaturen und Formulare benötigen. Für einfache HTML-zu-PDF-Konvertierungsaufgaben ist iText 9 jedoch schwerer und komplexer als schlankere Bibliotheken wie IronPDF.
wkhtmltopdf: HTML-zu-PDF-Konvertierung
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 15
Archivierungs- und Wartungsstatus
Wichtig zu beachten ist, dass wkhtmltopdf nicht mehr aktiv weiterentwickelt wird . Das zugehörige GitHub-Repository wurde im Januar 2023 offiziell archiviert und als schreibgeschützt markiert, was bedeutet, dass keine zukünftigen Updates, Fehlerbehebungen oder Sicherheitspatches mehr eingespielt werden.
Hinweis für Entwickler : Obwohl wkhtmltopdf für sehr einfache Anwendungsfälle noch immer effektiv sein kann, machen sein nicht mehr gepflegter Status und seine veraltete Rendering-Engine es zu einer riskanten Wahl – insbesondere für Produktionsumgebungen oder Anwendungen, die dynamische oder externe HTML-Inhalte verarbeiten.
wkhtmltopdf ist ein Kommandozeilen-Werkzeug, das HTML-Dateien mithilfe von Webkit-Rendering in PDF konvertiert. So funktioniert es in verschiedenen Szenarien:
HTML-String in PDF konvertieren
wkhtmltopdf erfordert die Konvertierung von HTML-Zeichenketten durch vorheriges Schreiben in eine Datei.
Example:
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.IO;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// HTML string to be converted to PDF
string html = "<html><body><h1>Hello, World!</h1></body></html>";
// Write HTML string to temporary file
string tempHtmlFile = Path.Combine(Path.GetTempPath(), "temp.html");
File.WriteAllText(tempHtmlFile, html);
// Set output PDF path
string outputPdfFile = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf");
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{tempHtmlFile}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
// Clean up the temporary HTML file
File.Delete(tempHtmlFile);
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
Imports System
Imports System.IO
Imports System.Diagnostics
Friend Class Program
Shared Sub Main(ByVal args() As String)
' HTML string to be converted to PDF
Dim html As String = "<html><body><h1>Hello, World!</h1></body></html>"
' Write HTML string to temporary file
Dim tempHtmlFile As String = Path.Combine(Path.GetTempPath(), "temp.html")
File.WriteAllText(tempHtmlFile, html)
' Set output PDF path
Dim outputPdfFile As String = Path.Combine(Path.GetTempPath(), "html-string-to-pdf.pdf")
' Execute wkhtmltopdf command
Dim process As New Process()
process.StartInfo.FileName = "wkhtmltopdf"
process.StartInfo.Arguments = $"""{tempHtmlFile}"" ""{outputPdfFile}"""
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
process.Start()
process.WaitForExit()
' Clean up the temporary HTML file
File.Delete(tempHtmlFile)
Console.WriteLine($"PDF saved to: {outputPdfFile}")
End Sub
End Class
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 16
Erläuterung:
- wkhtmltopdf benötigt eine Eingabedatei, daher schreiben wir zuerst die HTML-Zeichenkette in eine temporäre Datei (temp.html).
- Anschließend verwenden wir die Process-Klasse, um den Befehl wkhtmltopdf auszuführen, wobei wir den Dateipfad der temporären HTML-Datei und den gewünschten Ausgabepfad der PDF-Datei als Argumente übergeben.
- Nach der Konvertierung löschen wir die temporäre HTML-Datei, um aufzuräumen.
Lokale HTML-Datei in PDF konvertieren
Um eine lokale HTML-Datei mit wkhtmltopdf in eine PDF-Datei zu konvertieren, können Sie direkt auf den Dateipfad der HTML-Datei verweisen.
Example:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Path to the local HTML file
string htmlFilePath = @"C:\path\to\your\document.html";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\html-file-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{htmlFilePath}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 17
Erläuterung:
- Dieses Beispiel gibt lediglich den Pfad zur lokalen HTML-Datei (template.html) und den Ausgabepfad für die PDF-Datei an.
- wkhtmltopdf verarbeitet lokale Dateien direkt, wodurch der Befehl unkompliziert ist.
Link zur PDF-Datei
Mit wkhtmltopdf ist das Konvertieren einer URL in ein PDF ganz einfach. Übergeben Sie einfach die URL direkt an den Befehl.
Example:
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// URL to be converted to PDF
string url = "https://apple.com";
// Path for the output PDF file
string outputPdfFile = @"C:\path\to\output\url-to-pdf.pdf";
// Execute wkhtmltopdf command
Process process = new Process();
process.StartInfo.FileName = "wkhtmltopdf";
process.StartInfo.Arguments = $"\"{url}\" \"{outputPdfFile}\"";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
Console.WriteLine($"PDF saved to: {outputPdfFile}");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 18
Erläuterung:
- In diesem Beispiel akzeptiert
wkhtmltopdfURLs direkt als Eingabe. - Die URL wird als Argument an
wkhtmltopdfübergeben, und die Ausgabe wird als PDF unter dem angegebenen Pfad gespeichert.
PuppeteerSharp: HTML-zu-PDF-Konvertierung
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 19
PuppeteerSharp ist ein .NET-Wrapper für Googles Puppeteer und ermöglicht die Steuerung von Headless Chrome/Chromium. Es eignet sich hervorragend zum Rendern von JavaScript-lastigen, dynamischen Seiten, erfordert jedoch das Herunterladen und Verwalten einer Chromium-Instanz, was zusätzlichen Aufwand bedeutet. Es ist Open Source und unterliegt der Apache-Lizenz 2.0.
HTML-String in PDF konvertieren
Puppeteer ist für das Rendern ganzer Seiten konzipiert, daher erfordert die Konvertierung einer HTML-Zeichenkette das Schreiben in eine Datei oder das direkte Rendern im Browser.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync();
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
string htmlContent = "<h1>Hello, World!</h1><p>This is a PDF generated from HTML string.</p>";
await page.SetContentAsync(htmlContent);
// Save the page as a PDF
await page.PdfAsync("html-string-to-pdf.pdf");
await browser.CloseAsync();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 20
Erläuterung:
- Puppeteer.LaunchAsync: Startet eine neue Instanz von Chromium im Headless-Modus.
- page.SetContentAsync: Lädt die HTML-Zeichenkette in die Browserseite.
- page.PdfAsync: Konvertiert das geladene HTML in ein PDF und speichert es in einer Datei.
Lokale HTML-Datei in PDF konvertieren
Um eine lokale HTML-Datei mithilfe von PuppeteerSharp in eine PDF-Datei umzuwandeln, können Sie die Datei in einen Headless-Browser laden und die PDF-Datei generieren.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Load the local HTML file
await page.GoToAsync("file:///path/to/your/template.html");
// Save the page as a PDF
await page.PdfAsync("html-file-to-pdf.pdf");
await browser.CloseAsync();
}
}
Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Load the local HTML file
Await page.GoToAsync("file:///path/to/your/template.html")
' Save the page as a PDF
Await page.PdfAsync("html-file-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End Class
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 21
Erläuterung:
- page.GoToAsync: Lädt die lokale HTML-Datei (achten Sie darauf, den korrekten Pfad
[file://]()zu verwenden). - page.PdfAsync: Konvertiert den Inhalt der lokalen HTML-Datei in eine PDF-Datei.
Link zur PDF-Datei
Die Umwandlung einer URL in ein PDF ist eine der Kernfunktionen von PuppeteerSharp, da es komplexe Seiten mit JavaScript verarbeiten kann.
Example:
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}
using PuppeteerSharp;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Download the browser if necessary
await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true });
var page = await browser.NewPageAsync();
// Navigate to the URL
await page.GoToAsync("https://example.com");
// Save the page as a PDF
await page.PdfAsync("url-to-pdf.pdf");
await browser.CloseAsync();
}
}
Imports PuppeteerSharp
Imports System
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Download the browser if necessary
Await (New BrowserFetcher()).DownloadAsync(BrowserFetcher.DefaultRevision)
Dim browser = Await Puppeteer.LaunchAsync(New LaunchOptions With {.Headless = True})
Dim page = Await browser.NewPageAsync()
' Navigate to the URL
Await page.GoToAsync("https://example.com")
' Save the page as a PDF
Await page.PdfAsync("url-to-pdf.pdf")
Await browser.CloseAsync()
End Function
End Class
Output
HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 22
Erläuterung:
- page.GoToAsync: Navigiert zur angegebenen URL.
- page.PdfAsync: Konvertiert die Webseite unter der angegebenen URL in eine PDF-Datei und speichert sie.
Urteil / Wann anwenden?
PuppeteerSharp ist ideal, wenn Sie eine pixelgenaue Darstellung moderner, JavaScript-lastiger Webanwendungen benötigen. Es ist komplexer als IronPDF, eignet sich aber hervorragend für die Verarbeitung dynamischer Webinhalte.
Warum IronPDF wählen?
IronPDF zeichnet sich durch seine Benutzerfreundlichkeit, Flexibilität und nahtlose Integration in .NET-Anwendungen aus. Es ist einfach zu implementieren, unterstützt HTML-, CSS- und JavaScript-Rendering und erfordert keine zusätzliche Einrichtung oder externe Abhängigkeiten. Neben der HTML-zu-PDF-Konvertierung bietet IronPDF eine umfangreiche Palette an Funktionen zum Erstellen von PDF-Dokumenten aus verschiedenen Dateitypen, zum Bearbeiten und Ergänzen bestehender PDF-Dokumente, zum Hinzufügen von Wasserzeichen, zur PDF-Dateisicherheit und vielem mehr! Um mehr über diese Bibliothek in Aktion zu erfahren, sollten Sie unbedingt die Anleitungen lesen, in denen die einzelnen Funktionen demonstriert werden.
Abschluss
Wenn es um die Konvertierung von HTML- in PDF-Dateien in C# geht, stehen mehrere leistungsstarke Werkzeugs zur Verfügung, die jeweils einzigartige Funktionen und Möglichkeiten bieten. IronPDF , Aspose , iText 9 , wkhtmltopdf und PuppeteerSharp bieten allesamt robuste Lösungen zur Umwandlung von HTML-Inhalten in professionelle PDF-Dokumente. Die Wahl des richtigen Werkzeugs für Ihr Projekt hängt jedoch von Faktoren wie Integrationsfreundlichkeit, Unterstützung dynamischer Inhalte, Leistung und Flexibilität ab.
| Werkzeug | HTML-String zu PDF | HTML-Datei zu PDF | URL-zu-PDF | Anmerkungen |
|---|---|---|---|---|
IronPDF |
Einfaches RenderHtmlAsPdf für HTML-Strings. Benutzerfreundlich und nahtlos in .NET-Anwendungen integrierbar. |
Verwendet RenderHtmlFileAsPdf und verarbeitet verknüpfte Ressourcen (CSS, JS) automatisch. |
Verwendet RenderUrlAsPdf , unterstützt JavaScript-lastige Seiten und dynamische Inhalte. |
Vollständig in .NET integriert und daher ideal für .NET-Entwickler. Unterstützt HTML-Strings, Dateien und URLs. |
![]() Aspose |
Erfordert mehr Konfiguration. Verwendet HtmlFragment in einem Document Objekt zur Konvertierung von HTML-Zeichenketten. |
Für die lokale HTML-Dateikonvertierung werden HtmlDocument und PdfSaveOptions benötigt. Es ist mehr Konfiguration erforderlich als bei IronPDF. |
Erfordert eine zusätzliche Einrichtung mittels WebRequest , um Inhalte abzurufen, bevor diese mit HtmlLoadOptions konvertiert werden.
|
Robust für diverse Dokumentenbearbeitungen, die Einrichtung kann jedoch etwas aufwendiger sein. Gut geeignet für komplexere PDF-Anforderungen. |
![]() iText7 |
Verwendet HtmlConverter.ConvertToPdf , um HTML-Zeichenketten in PDF zu konvertieren. |
Verwendet HtmlConverter.ConvertToPdf , um lokale HTML-Dateien in PDFs zu konvertieren. |
Ähnlich wie bei der lokalen Dateiverarbeitung wird HtmlConverter.ConvertToPdf verwendet. |
Ideal für Entwickler, die über die HTML-zu-PDF-Konvertierung hinaus mehr Kontrolle über die PDF-Bearbeitung benötigen. |
![]() wkhtmltopdf |
Konvertiert HTML-Zeichenketten, indem sie zunächst in eine Datei geschrieben werden. Verwendet das Kommandozeilen-Werkzeug zur PDF-Erstellung. | Konvertiert lokale HTML-Dateien direkt in PDFs, indem auf Dateipfade verwiesen wird. | Konvertiert URLs direkt in PDFs, indem die URL an das Befehlszeilentool übergeben wird. | Es handelt sich primär um ein Kommandozeilen-Werkzeug, für dessen Integration in .NET unter Umständen zusätzliche Schritte erforderlich sind. Am besten geeignet für einfache Konvertierungen. |
![]() PuppeteerSharp |
Verwendet page.SetContentAsync , um die HTML-Zeichenkette zu laden, und anschließend page.PdfAsync , um ein PDF zu generieren. |
Lädt eine lokale HTML-Datei über page.GoToAsync und konvertiert sie dann in ein PDF. |
Lädt eine URL und konvertiert sie mithilfe von page.GoToAsync und page.PdfAsync in ein PDF. |
Ideal für dynamische Seiten, insbesondere solche mit hohem JavaScript-Anteil. Erfordert das Herunterladen und Starten von Chromium. |
-
IronPDF zeichnet sich durch seine Einfachheit, die direkte Integration mit .NET und die Fähigkeit zur Verarbeitung komplexer HTML-Inhalte , einschließlich JavaScript-gerenderter Seiten, aus. Es eignet sich perfekt für Entwickler, die eine benutzerfreundliche Lösung mit minimalem Einrichtungsaufwand suchen.
-
Aspose bietet umfangreiche PDF-Bearbeitungsfunktionen, aber seine HTML-zu-PDF-Konvertierungsfunktionen erfordern mehr Konfiguration, insbesondere für die Verarbeitung lokaler Dateien und externer Ressourcen.
-
iText 9 bietet eine solide Grundlage für alle, die PDF-Dokumente erstellen möchten. Allerdings kann es erforderlich sein, HTML in PDF zu konvertieren, insbesondere bei dynamischen Inhalten. Es ist eine hervorragende Wahl für Projekte, bei denen eine individuelle PDF-Bearbeitung erforderlich ist.
-
wkhtmltopdf eignet sich ideal für die einfache HTML-zu-PDF-Konvertierung mit einer Kommandozeilenschnittstelle, bietet aber nicht die Integration und Flexibilität einer vollständigen .NET-Bibliothek.
- PuppeteerSharp , das auf Headless Chrome basiert, ist das ideale Werkzeug zum Rendern komplexer, dynamischer Webseiten und deren Konvertierung in PDFs, insbesondere bei Inhalten mit hohem JavaScript-Anteil.
Für die meisten .NET-Entwickler, die eine unkomplizierte Komplettlösung suchen, lohnt es sich, IronPDF noch heute auszuprobieren und die leistungsstarken Funktionen selbst zu erleben. Von der Erstellung neuer PDF-Dokumente bis zur Bearbeitung bestehender PDFs – entdecken Sie selbst die gesamte Funktionsvielfalt von IronPDF. Installieren Sie einfach IronPDF und nutzen Sie die kostenlose Testversion, um es selbst auszuprobieren. Erfahren Sie noch heute, wie es Ihre PDF-Workflows optimieren kann.
Letztendlich hängt das richtige Werkzeug von Ihren spezifischen Anforderungen ab, aber mit den hier besprochenen Optionen sind Sie bestens gerüstet, um die perfekte Lösung für Ihr Projekt zu finden.
Bitte beachten Sie: Aspose, iText, wkhtmltopdf und PuppeteerSharp sind eingetragene Marken ihrer jeweiligen Eigentümer. Diese Seite ist nicht mit, von oder durch Aspose, iText, wkhtmltopdf oder Puppeteer gesponsert oder verbunden. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Inhaber. Die Vergleiche dienen lediglich Informationszwecken und basieren auf zum Zeitpunkt der Erstellung dieses Dokuments öffentlich zugänglichen Informationen.



