PRODUKT-VERGLEICHE

HTML zu PDF in C# für .NET-Entwickler (Der Ultimative Leitfaden)

Veröffentlicht 15. Dezember 2024
Teilen Sie:

Einführung

In der heutigen webgetriebenen Welt ist die Möglichkeit, HTML-Inhalte in PDF-Dokumente zu konvertieren, eine entscheidende Funktion für viele Anwendungen. Egal ob zur Erstellung von Berichten, Rechnungen oder zum Speichern von Webseiten für die Offline-Nutzung: Die Konvertierung von HTML zu PDF spielt eine entscheidende Rolle bei der Optimierung von Arbeitsabläufen und der Verbesserung der Benutzererfahrung. Für .NET-Entwickler kann die Wahl des richtigen Tools für diese Konvertierung erheblichen Einfluss auf die Effizienz und Qualität ihrer Anwendungen haben.

In diesem Artikel werden wir untersuchen, wie man HTML in PDF in C# umwandelt, indem wir die folgenden Themen abdecken:

  1. Warum HTML-zu-PDF-Tools vergleichen? 2. IronPDF: HTML-zu-PDF-Konvertierung

  2. Aspose: HTML zu PDF-Konvertierung 4. iText7: HTML zu PDF-Konvertierung

  3. wkhtmltopdf: HTML zu PDF-Konvertierung 6. PuppeteerSharp: HTML zu PDF-Konvertierung

  4. Fazit: Warum IronPDF wählen?

    Am Ende werden Sie verstehen, warumIronPDFhebt sich als entwicklerfreundlicher und effizienter HTML-zu-PDF-Konverter hervor.

Warum HTML-zu-PDF-Tools vergleichen?

Auswahl des geeignetenUmwandlung von HTML in PDFDas Werkzeug ist unerlässlich, um sicherzustellen, dass Ihre Anwendung die Anforderungen an Leistung, Qualität und Kosten erfüllt. Mit zahlreichen verfügbaren Optionen, die jeweils unterschiedliche Funktionen und Fähigkeiten bieten, hilft ein gründlicher Vergleich bei der fundierten Entscheidungsfindung. Hier sind die wichtigsten Bewertungskriterien, die Sie berücksichtigen sollten:

  • Integrationskomplexität: Wie einfach die Bibliothek in Ihre bestehenden .NET-Projekte integriert werden kann.
  • Code Einfachheit: Die Leichtigkeit, Code unter Verwendung der Bibliothek zu schreiben und zu warten.
  • Rendergenauigkeit: Die Fähigkeit, komplexes HTML, CSS und JavaScript genau darzustellen.
  • Leistung im großen Maßstab: Wie gut die Bibliothek unter hoher Belastung und bei der Erzeugung großer PDF-Dateien funktioniert.
  • Lizenzierung und Kosteneffizienz: Die Preisgestaltung und Lizenzbedingungen, die zu Ihrem Projektbudget passen.

    Indem Sie diese Faktoren bewerten, können Sie ein Werkzeug auswählen, das nicht nur Ihre technischen Anforderungen erfüllt, sondern auch zu den finanziellen Einschränkungen Ihres Projekts passt.

IronPDF: HTML-zu-PDF-Konvertierung

HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 1

IronPDF ist eine voll funktionsfähige .NET-Bibliothek zur Umwandlung von HTML in PDF. Es unterstützt HTML-Strings, lokale HTML-Dateien und URLs, was es vielseitig für eine breite Palette von Anwendungsfällen macht. So geht IronPDF mit jeder Situation um:

HTML-String zu PDF

Konvertieren von HTML aus einerZeichenfolge in ein PDFist einfach mit IronPDF. Dieser Ansatz ist ideal für die dynamische Inhaltserstellung oder kleine HTML-Snippets.

Beispiel:

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
        PDF.SaveAs("output.pdf");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
        PDF.SaveAs("output.pdf");
    }
}
Imports IronPdf
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>")
		PDF.SaveAs("output.pdf")
	End Sub
End Class
VB   C#

HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 2

Erläuterung:

  1. ChromePdfRenderer: Die ChromePdfRenderer-Klasse ist das Hauptwerkzeug zum Konvertieren von HTML in PDF in IronPDF. Es ist vorkonfiguriert, um die meisten Anwendungsfälle mit minimalem Aufwand zu bewältigen.

  2. RenderHtmlAsPdf: Diese Methode nimmt einen HTML-String als Eingabe und erzeugt ein PDF-Dokument.

  3. SaveAs: Das erzeugte PDF wird im angegebenen Pfad gespeichert.(output.pdf).

Lokale HTML-Datei zu PDF

Für Anwendungen, die eine Konvertierung von einemlokale HTML-Datei (mit externen Ressourcen wie CSS oder JavaScript), IronPDF macht es einfach.

Beispiel:

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

Eingabedatei im HTML-Format

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 ein PDF.
  • Verarbeitet automatisch verknüpfte Ressourcen wie externe CSS- und JavaScript-Dateien.

URL zu PDF

IronPDF ist besonders leistungsstark bei der Umwandlung dynamischer Webinhalte ausURLs, einschließlich Seiten, die JavaScript verwenden.

Beispiel:

using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com");
        pdf.SaveAs("url-to-pdf.pdf");
    }
}
using IronPdf;
class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderUrlAsPdf("https://ironpdf.com");
        pdf.SaveAs("url-to-pdf.pdf");
    }
}
Imports IronPdf
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()
		Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://ironpdf.com")
		pdf.SaveAs("url-to-pdf.pdf")
	End Sub
End Class
VB   C#

HTML zu PDF in C# für .NET-Entwickler (Der Ultimative Leitfaden): Abbildung 5

Erläuterung:

  • RenderUrlAsPdf: Ruft den URL-Inhalt ab, einschließlich JavaScript-gerenderter Elemente, und konvertiert ihn in PDF.

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 mit Unterstützung für die Umwandlung von HTML in PDF. Lassen Sie uns sehen, wie Aspose jedes Konvertierungsszenario behandelt:

HTML-String zu PDF

Aspose erfordert bei der Umwandlung von HTML-Strings etwas mehr Einrichtung im Vergleich zu IronPDF.

Beispiel:

using Aspose.Html;
Document doc = new Document();
Page page = doc.getPages().add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().add(htmlFragment);
doc.save(dataDir + "HTMLStringUsingDOM.pdf");
using Aspose.Html;
Document doc = new Document();
Page page = doc.getPages().add();
HtmlFragment htmlFragment = new HtmlFragment("<h1>HTML String</h1>");
page.getParagraphs().add(htmlFragment);
doc.save(dataDir + "HTMLStringUsingDOM.pdf");
Imports Aspose.Html
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(dataDir & "HTMLStringUsingDOM.pdf")
VB   C#

Erläuterung:

  • Dokument doc: Erstellt ein neues Dokument, um den konvertierten HTML-String zu speichern.
  • Seite Seite: Diese Zeile fügt dem leeren Dokument, das wir erstellt haben, eine neue Seite hinzu.
  • HtmlFragment htmlFragment: Dies ist der HTML-String, den wir umwandeln.
  • page.getParagraphs().hinzufügen(htmlFragment): Füge das HTML dem Dokument hinzu
  • doc.save: Speichert das Dokument mit dem HTML-Inhalt als PDF-Dokument.

Lokale HTML-Datei zu PDF

Aspose kann auch lokale HTML-Dateien in PDFs umwandeln, jedoch erfordert es mehr Konfiguration als IronPDF.

Beispiel:

using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Saving;
    using 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;
    using 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")
VB   C#

Erläuterung:

  • using var document = new HTMLDocument(„document.html“): Lädt die HTML-Datei.
  • var options: Erstellt ein neues PdfSaveOptions-Objekt
  • Converter.ConvertHTML(): Konvertiert HTML in PDF.

URL zu PDF

Aspose bietet ähnliche Funktionalität für URLs, erfordert jedoch zusätzliche Einrichtung.

Beispiel:

using System.IO;
using System;
using System.Net;
using Aspose.Pdf;
string dataDir = "YOUR DOCUMENT DIRECTORY"; // Replace with your path
WebRequest request = WebRequest.Create("https://en.wikipedia.org/wiki/Main_Page");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://en.wikipedia.org/wiki/");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save(dataDir + "WebPageToPDF_out.pdf");
using System.IO;
using System;
using System.Net;
using Aspose.Pdf;
string dataDir = "YOUR DOCUMENT DIRECTORY"; // Replace with your path
WebRequest request = WebRequest.Create("https://en.wikipedia.org/wiki/Main_Page");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
HtmlLoadOptions options = new HtmlLoadOptions("https://en.wikipedia.org/wiki/");
Document pdfDocument = new Document(stream, options);
pdfDocument.Save(dataDir + "WebPageToPDF_out.pdf");
Imports System.IO
Imports System
Imports System.Net
Imports Aspose.Pdf
Private dataDir As String = "YOUR DOCUMENT DIRECTORY" ' Replace with your path
Private request As WebRequest = WebRequest.Create("https://en.wikipedia.org/wiki/Main_Page")
request.Credentials = CredentialCache.DefaultCredentials
Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
Dim dataStream As Stream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
reader.Close()
dataStream.Close()
response.Close()
Dim stream As New MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer))
Dim options As New HtmlLoadOptions("https://en.wikipedia.org/wiki/")
Dim pdfDocument As New Document(stream, options)
pdfDocument.Save(dataDir & "WebPageToPDF_out.pdf")
VB   C#

Erläuterung:

  • Die Variable dataDir enthält das Verzeichnis, in dem das generierte PDF gespeichert wird.
  • Eine WebRequest wird erstellt, um auf die URL der Wikipedia-Hauptseite zuzugreifen, und die Standardanmeldedaten werden für die Anfrage verwendet.
  • Die GetResponse()Die Methode sendet die Anfrage und ruft die Antwort als HttpWebResponse ab.
  • Ein Stream wird aus der Antwort abgerufen, und ein StreamReader liest den gesamten HTML-Inhalt der Seite in die Zeichenkette responseFromServer ein.
  • Der HTML-Inhalt aus responseFromServer wird in ein Byte-Array umgewandelt und anschließend in einen MemoryStream geladen.
  • HtmlLoadOptions wird verwendet, um die Basis-URL für relative Links und andere Einstellungen anzugeben.
  • Ein Aspose.Pdf.Document wird aus dem Speicherstrom erstellt, der das HTML enthält, und das Dokument wird als PDF im angegebenen Verzeichnis gespeichert.

iText7: HTML-zu-PDF-Konvertierung

HTML zu PDF in C# für .NET-Entwickler (Der umfassende Leitfaden): Abbildung 7

iText7 ist eine umfassende PDF-Bibliothek, die auch die Umwandlung von HTML zu PDF unterstützt. Hier ist, wie iText7 in verschiedenen Szenarien abschneidet:

HTML-String zu PDF

iText7 nutzt seine htmlConverter-Klasse, um HTML-Strings in das PDF-Format zu konvertieren.

Beispiel:

public static String DEST = String.Format("{0}test-03.pdf", TARGET);
var html = "<h1>Hello World</h1>";
HtmlConverter.ConvertToPdf(html, new FileStream(dest, FileMode.Create));
public static String DEST = String.Format("{0}test-03.pdf", TARGET);
var html = "<h1>Hello World</h1>";
HtmlConverter.ConvertToPdf(html, new FileStream(dest, FileMode.Create));
Public Shared DEST As String = String.Format("{0}test-03.pdf", TARGET)
Private html = "<h1>Hello World</h1>"
HtmlConverter.ConvertToPdf(html, New FileStream(dest, FileMode.Create))
VB   C#

Lokale HTML-Datei zu PDF

iText7 kann HTML-Dateitypen mit der Klasse HtmlConverter.ConvertToPdf in PDF konvertieren.

Beispiel:

using iText.Html2pdf;
class Program
{
    static void Main(string[] args)
    {
        HtmlConverter.ConvertToPdf("template.html", new FileStream("html-file-to-pdf.pdf", FileMode.Create));
    }
}
using iText.Html2pdf;
class Program
{
    static void Main(string[] args)
    {
        HtmlConverter.ConvertToPdf("template.html", new FileStream("html-file-to-pdf.pdf", FileMode.Create));
    }
}
Imports iText.Html2pdf
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		HtmlConverter.ConvertToPdf("template.html", New FileStream("html-file-to-pdf.pdf", FileMode.Create))
	End Sub
End Class
VB   C#

Erläuterung:

  • HtmlConverter: Konvertiert eine HTML-Datei direkt in eine PDF.

URL zu PDF

iText7 unterstützt auch die Konvertierung von Inhalten aus URLs.

Beispiel:

using iText.Html2pdf;
class Program
{
    static void Main(string[] args)
    {
        HtmlConverter.ConvertToPdf("https://example.com", new FileStream("url-to-pdf.pdf", FileMode.Create));
    }
}
using iText.Html2pdf;
class Program
{
    static void Main(string[] args)
    {
        HtmlConverter.ConvertToPdf("https://example.com", new FileStream("url-to-pdf.pdf", FileMode.Create));
    }
}
Imports iText.Html2pdf
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		HtmlConverter.ConvertToPdf("https://example.com", New FileStream("url-to-pdf.pdf", FileMode.Create))
	End Sub
End Class
VB   C#

Erläuterung:

  • HtmlConverter: Verwalten Sie die URL-Inhalte und konvertieren Sie sie in eine PDF-Datei.

wkhtmltopdf: HTML-zu-PDF-Konvertierung

HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 8

wkhtmltopdf ist ein Kommandozeilenprogramm, das HTML-Dateien mit Webkit-Rendering in PDF umwandelt. So funktioniert es in verschiedenen Szenarien:

HTML-String zu PDF

wkhtmltopdf erfordert die Konvertierung von HTML-Strings, indem diese zuerst in eine Datei geschrieben werden.

Beispiel:

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

Erläuterung:

  • wkhtmltopdf benötigt eine Eingabedatei, daher schreiben wir zunächst den HTML-String in eine temporäre Datei.(temp.html).
  • Wir verwenden dann die Process-Klasse, um den wkhtmltopdf-Befehl auszuführen, wobei wir den Dateipfad der temporären HTML-Datei und den gewünschten Ausgabepfad für das PDF als Argumente übergeben.
  • Nach der Umwandlung löschen wir die temporäre HTML-Datei, um aufzuräumen.

Lokale HTML-Datei zu PDF

Um eine lokale HTML-Datei mit wkhtmltopdf in eine PDF zu konvertieren, können Sie direkt auf den Dateipfad der HTML-Datei verweisen.

Beispiel:

using System;
using System.Diagnostics;
class Program
{
    static void Main(string[] args)
    {
        // Path to the local HTML file
        string htmlFilePath = @"C:\path\to\your\template.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\template.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}");
    }
}
Imports System
Imports System.Diagnostics
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Path to the local HTML file
		Dim htmlFilePath As String = "C:\path\to\your\template.html"
		' Path for the output PDF file
		Dim outputPdfFile As String = "C:\path\to\output\html-file-to-pdf.pdf"
		' Execute wkhtmltopdf command
		Dim process As 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}")
	End Sub
End Class
VB   C#

Erläuterung:

  • Dieses Beispiel gibt einfach den Pfad zur lokalen HTML-Datei an.(template.html)und den Ausgabepfad für das PDF.
  • wkhtmltopdf verarbeitet lokale Dateien direkt, wodurch der Befehl unkompliziert ist.

URL zu PDF

Die Umwandlung einer URL in eine PDF-Datei ist mit wkhtmltopdf einfach. Geben Sie einfach die URL direkt an den Befehl weiter.

Beispiel:

using System;
using System.Diagnostics;
class Program
{
    static void Main(string[] args)
    {
        // URL to be converted to PDF
        string url = "https://example.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://example.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}");
    }
}
Imports System
Imports System.Diagnostics
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' URL to be converted to PDF
		Dim url As String = "https://example.com"
		' Path for the output PDF file
		Dim outputPdfFile As String = "C:\path\to\output\url-to-pdf.pdf"
		' Execute wkhtmltopdf command
		Dim process As 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}")
	End Sub
End Class
VB   C#

Erläuterung:

  • In diesem Beispiel akzeptiert wkhtmltopdf direkt URLs als Eingabe.
  • Die URL wird als Argument an wkhtmltopdf übergeben, und die Ausgabe wird als PDF im angegebenen Pfad gespeichert.

PuppeteerSharp: HTML-zu-PDF-Konvertierung

HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 9

PuppeteerSharp ist ein leistungsstarkes Werkzeug zur Automatisierung von Headless Chrome oder Chromium, das häufig für das Web Scraping oder das Rendern komplexer Webseiten verwendet wird. Nachfolgend finden Sie Beispiele, wie PuppeteerSharp zur Umwandlung von HTML in PDF verwendet wird.

HTML-String zu PDF

Puppeteer ist für das Rendern von vollständigen Seiten konzipiert, daher erfordert die Umwandlung eines HTML-Strings, diesen in eine Datei zu schreiben oder direkt in einem Browser zu rendern.

Beispiel:

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();
        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(BrowserFetcher.DefaultRevision);
        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();
    }
}
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()
		Dim htmlContent As String = "<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()
	End Function
End Class
VB   C#

Erläuterung:

  • Puppeteer.LaunchAsync: Startet eine neue Instanz von Chromium im Headless-Modus.
  • page.SetContentAsync: Lädt den HTML-String in die Browserseite.
  • page.PdfAsync: Konvertiert das geladene HTML in eine PDF und speichert es in einer Datei.

Lokale HTML-Datei zu PDF

Um eine lokale HTML-Datei mit PuppeteerSharp in ein PDF zu konvertieren, können Sie die Datei in einen Headless-Browser laden und das PDF generieren.

Beispiel:

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

Erläuterung:

  • page.GoToAsync: Lädt die lokale HTML-Datei(Sorgen Sie dafür, dass Sie die richtigen[file://]()Pfad).
  • page.PdfAsync: Konvertiert den Inhalt der lokalen HTML-Datei in ein PDF.

URL zu PDF

Das Konvertieren einer URL in eine PDF-Datei ist eine der zentralen Funktionen von PuppeteerSharp, da es komplexe Seiten mit JavaScript verarbeiten kann.

Beispiel:

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

Erläuterung:

  • page.GoToAsync: Navigiert zur angegebenen URL.
  • page.PdfAsync: Konvertiert die Webseite unter der URL in ein PDF und speichert es.

Warum IronPDF wählen?

IronPDF zeichnet sich durch seine Benutzerfreundlichkeit, Flexibilität und nahtlose Integration mit .NET-Anwendungen aus. Es ist einfach zu implementieren, unterstützt die Darstellung von HTML, CSS und JavaScript und erfordert keine zusätzliche Einrichtung oder externe Abhängigkeiten. Neben der HTML-zu-PDF-Konvertierung bietet IronPDF eine umfangreiche Palette von Funktionen zur Erstellung von PDF-Dokumenten aus verschiedenen Dateitypen, zum Bearbeiten und Hinzufügen zu bestehenden PDF-Dokumenten, zum Wasserzeichen, zur Sicherheit von PDF-Dateien und mehr.! Um mehr von dieser Bibliothek in Aktion zu sehen, sollten Sie sich das Anleitungendie jede seiner Funktionen im Einsatz demonstrieren.

Schlussfolgerung

Beim Konvertieren von HTML in PDF-Dateien mit C# stehen mehrere leistungsstarke Tools zur Verfügung, die jeweils einzigartige Funktionen und Fähigkeiten bieten. IronPDF, Aspose, iText7, wkhtmltopdf und PuppeteerSharp bieten alle robuste Lösungen zur Umwandlung von HTML-Inhalten in PDF-Dokumente in professioneller Qualität. Die Wahl des richtigen Werkzeugs für Ihr Projekt hängt jedoch von Faktoren wie der einfachen Integration, der Unterstützung dynamischer Inhalte, der Leistung und der Flexibilität ab.

HTML zu PDF in C# für .NET-Entwickler (Der ultimative Leitfaden): Abbildung 10

  • IronPDF zeichnet sich durch seine Einfachheit, die direkte Integration mit .NET und die Fähigkeit aus, komplexes HTML, einschließlich JavaScript-gerenderter Seiten, zu verarbeiten. Es ist ideal für Entwickler, die nach einer benutzerfreundlichen Lösung mit minimalem Einrichtungsaufwand suchen.
  • Aspose bietet umfangreiche PDF-Manipulationsfunktionen, aber seine HTML-zu-PDF-Konvertierungsfähigkeiten erfordern mehr Konfiguration, insbesondere beim Umgang mit lokalen Dateien und externen Ressourcen.
  • iText7 bietet eine solide Grundlage für diejenigen, die PDF-Dokumente erstellen möchten, obwohl es möglicherweise zusätzliches Programmieren erfordert, um HTML in PDF zu konvertieren, insbesondere bei dynamischem Inhalt. Es ist eine ausgezeichnete Wahl für Projekte, bei denen eine individuelle PDF-Bearbeitung erforderlich ist.
  • wkhtmltopdf ist ideal für die grundlegende HTML-zu-PDF-Konvertierung mit einer Befehlszeilenschnittstelle, aber es fehlt die Integration und Flexibilität einer vollständigen .NET-Bibliothek.
  • PuppeteerSharp, unter Verwendung von headless Chrome, ist das bevorzugte Werkzeug zum Rendern komplexer, dynamischer Webseiten und deren Umwandlung in PDFs, insbesondere bei der Arbeit mit JavaScript-lastigen Inhalten.

    Für die meisten .NET-Entwickler, die nach einer All-in-One, unkomplizierten Lösung suchen,IronPDFheute, um die leistungsstarken Funktionen selbst zu erleben.

    Letztendlich hängt das richtige Werkzeug von Ihren spezifischen Anforderungen ab, aber mit den hier besprochenen Optionen sind Sie gut gerüstet, um die perfekte Lösung für Ihr Projekt zu finden.

< PREVIOUS
C# PDF SDK Vergleich (Kostenlose & Kostenpflichtige Tools)
NÄCHSTES >
APITemplate io und IronPDF Vergleich für C# PDF-Bibliotheken

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

Gratis NuGet-Download Downloads insgesamt: 11,810,873 Lizenzen anzeigen >