HTML-Dokument in C# in PDF-Dokument konvertieren

Blog-Kategorie: BildgebungPDF.NET

08.04.2026

Die Konvertierung einer HTML-Seite in ein PDF-Dokument in C# ist eine häufige Aufgabe, die oft verwendet wird, um Rechnungen, Berichte, Verträge und andere Geschäftsdokumente aus HTML-Vorlagen zu erstellen. Die Konvertierung einer HTML-Seite in ein PDF-Dokument in C# ist auch unerlässlich, um statische, portable und druckfertige Dokumente aus dynamischen Webinhalten zu erstellen.

Der Prozess der Konvertierung einer HTML-Seite in ein PDF-Dokument umfasst die folgenden Schritte:

Die Spezifikation des HTML5-Standards (https://html.spec.whatwg.org/print.pdf) umfasst 1553 Seiten.

Die Spezifikation des CSS2-Standards (https://www.w3.org/TR/CSS22/css2.pdf) umfasst 426 Seiten.

Die Spezifikation des JavaScript-Standards (https://ecma-international.org/wp-content/uploads/ECMA-262_16th_edition_june_2025.pdf) umfasst 835 Seiten.

Die Schritte zur Konvertierung von HTML in PDF sowie Informationen zu HTML5-, CSS2- und JavaScript-Spezifikationen wurden bereits oben erläutert, um zu verdeutlichen, dass die Konvertierung von HTML in PDF im Allgemeinen eine sehr komplexe Aufgabe ist, wenn sie von Grund auf neu implementiert wird.

Gleichzeitig ist diese komplexe Aufgabe in modernen Webbrowsern bereits implementiert, die HTML-Seiten perfekt rendern und gerenderte HTML-Seiten als PDF-Datei speichern können. Daher stellt sich die berechtigte Frage: Ist es möglich, einen Webbrowser in einer C#-Anwendung zu verwenden, um eine HTML-Seite in ein PDF-Dokument zu konvertieren?

In diesem Artikel zeigen wir Ihnen, wie Sie mit Chromium eine HTML-Seite beliebiger Komplexität in einer C#-Anwendung absolut kostenlos und in maximaler Qualität in ein PDF-Dokument konvertieren können.

Chromium ist ein Open-Source-Webbrowser-Projekt, das hauptsächlich als Grundlage für die meisten modernen Webbrowser dient, darunter Google Chrome, Microsoft Edge, Opera und andere. Es wurde mit Blick auf Geschwindigkeit, Sicherheit und Stabilität entwickelt und beinhaltet bedeutende Beiträge von Entwicklern bei Google, Microsoft und anderen Unternehmen.


Konvertierung einer HTML-Seite in ein PDF-Dokument in C# mithilfe der Chrome-Befehlszeile

Die einfachste Möglichkeit, eine HTML-Seite in ein PDF-Dokument zu konvertieren, besteht darin, den folgenden Chrome-Befehl in der Befehlszeile auszuführen:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --headless --disable-gpu —run-all-compositor-stages-before-draw --no-margins --printBackground=true --no-pdf-header-footer --print-to-pdf="D:\result.pdf" "https://www.vintasoft.com/index.html"

Hier ist eine kurze Beschreibung der in der Chrome-Befehlszeile verwendeten Parameter:

Der obige Befehl kann über die Windows-/Linux-/macOS-Befehlszeile oder aus C#-Code ausgeführt werden.

Hier ist C#-Code, der zeigt, wie man eine HTML-Seite in einer .NET-Konsolenanwendung mit Chrome in ein PDF-Dokument konvertiert:
using System.Diagnostics;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string chromePath = @"C:\Program Files\Google\Chrome\Application\chrome.exe";
            string sourceUrl = "https://www.vintasoft.com/index.html";
            string resultPdfFilePath = @"D:\result.pdf";
            string chromeArgsTemplate =
                "--headless --no-pdf-header-footer --no-margins --disable-gpu --run-all-compositor-stages-before-draw --printBackground=true --print-to-pdf=\"{0}\" {1}";
            
            ProcessStartInfo startInfo = new ProcessStartInfo
            {
                FileName = chromePath,
                Arguments = string.Format(chromeArgsTemplate, resultPdfFilePath, sourceUrl),
                UseShellExecute = false,
                CreateNoWindow = false
            };
            using (Process process = Process.Start(startInfo))
            {
                process.WaitForExit();
            }
            
            Console.WriteLine("HTML page is converted to the PDF document.");
        }
    }
}


Diese Konvertierungsmethode kann verwendet werden, wenn der Chrome-Webbrowser auf dem Computer installiert ist und der Pfad zur Datei "chrome.exe" bekannt ist.

Die resultierende .NET-Anwendung ist klein, da sie keine zusätzlichen Bibliotheken enthält und vollständig auf dem Chrome-Webbrowser basiert.


Konvertierung einer HTML-Seite in ein PDF-Dokument in C# mit dem NuGet-Paket CefSharp.OffScreen

Das NuGet-Paket CefSharp.OffScreen enthält eine kompilierte Version der CefSharp-Bibliothek und ermöglicht es Entwicklern, eine vollständige Instanz des Chromium-Webbrowsers im Hintergrund ohne sichtbare Benutzeroberfläche auszuführen.

Wenn Sie die CefSharp.OffScreen-Bibliothek in einer .NET Framework-Anwendung verwenden möchten, fügen Sie einfach einen Verweis auf das NuGet-Paket CefSharp.OffScreen zur .NET Framework-Anwendung hinzu.

Wenn Sie die CefSharp.OffScreen-Bibliothek in einer .NET Core-Anwendung verwenden möchten, fügen Sie einfach einen Verweis auf das NuGet-Paket CefSharp.OffScreen.NETCore zur .NET Core-Anwendung hinzu.

Hier ist der C#-Code für eine .NET-Konsolenanwendung, die eine HTML-Seite mithilfe der CefSharp.OffScreen-Bibliothek in ein PDF-Dokument konvertiert:
using CefSharp;
using CefSharp.OffScreen;
using System;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string sourceUrl = "https://www.vintasoft.com/index.html";
            string resultPdfFilePath = @"D:\result.pdf";
            Task task = ConvertHtmlToPdfUsingCefSharpOffScreen(sourceUrl, resultPdfFilePath);
            task.Wait();
            Console.WriteLine("HTML page is converted to the PDF document.");
            Console.ReadKey();
        }

        static async Task ConvertHtmlToPdfUsingCefSharpOffScreen(string url, string pdfPath)
        {
            // if CEF is not initialized
            if (Cef.IsInitialized == null || Cef.IsInitialized == false)
            {
                // create CEF settings
                CefSettings settings = new CefSettings();
                // initialize CEF
                Cef.Initialize(settings);
            }

            // create Chromium web browser
            using (ChromiumWebBrowser browser = new ChromiumWebBrowser(url))
            {
                // wait while page will be loaded
                await browser.WaitForInitialLoadAsync();

                // create PDF print settings
                PdfPrintSettings printSettings = new PdfPrintSettings
                {
                    MarginType = CefPdfPrintMarginType.None,
                    PrintBackground = true,
                    Landscape = false,
                    Scale = 1.0,
                    PreferCssPageSize = true,
                    DisplayHeaderFooter = false
                };

                // print web page to a PDF file
                await browser.PrintToPdfAsync(pdfPath, printSettings);
            }
        }
    }
}


Diese Konvertierungsmethode ist unabhängig vom Chrome-Webbrowser. In diesem Fall ist es nicht erforderlich, CefSharp selbst zu kompilieren, da die Entwickler des NuGet-Pakets CefSharp.OffScreen dies bereits getan haben.

Die resultierende .NET-Anwendung ist vollständig eigenständig und aufgrund der enthaltenen CefSharp-Bibliotheksdateien recht groß (etwas über 300 MB).


Konvertierung einer HTML-Seite in ein PDF-Dokument in C# mithilfe der CefSharp-Bibliothek

CefSharp ist ein Open-Source-Projekt, das einen .NET-Wrapper für das Chromium Embedded Framework (CEF) bereitstellt. Mit CefSharp können Entwickler einen voll funktionsfähigen Chromium-basierten Webbrowser direkt in C#- oder VB.NET-Desktopanwendungen einbetten.

Das CefSharp-Repository befindet sich auf GitHub: https://github.com/cefsharp/cefsharp

Das Repository enthält 15 Projekte, darunter eine Beispiel-Konsolenanwendung, eine Beispiel-WinForms-Anwendung und eine Beispiel-WPF-Anwendung.

Testen Sie die WPF-Beispielanwendung (Projekt "CefSharp.Wpf.Example").netcore") und Sie sehen eine WPF-Anwendung mit Seitennavigation ähnlich wie in Chrome. Die WPF-Anwendung umfasst Linknavigation, CSS-Stile und JavaScript-Code - sie fühlt sich genau wie Chrome an. Im Hauptmenü der Anwendung können Sie "Tests => Aktuellen Tab als PDF drucken" auswählen und die gerenderte HTML-Seite als PDF-Datei speichern.


Diese Konvertierungsmethode ist unabhängig vom Chrome-Webbrowser, aber Sie müssen CefSharp manuell aus dem Quellcode kompilieren, was beim Kompilieren des CefSharp-Projekts in Visual Studio automatisch geschieht.

Die resultierende .NET-Anwendung (das Projekt "CefSharp.Wpf.Example.netcore") ist vollständig eigenständig und hat eine große Größe (etwas über 400 MB), da sie CefSharp-Bibliotheksdateien enthält.


Verarbeitung von PDF-Dokumenten mit dem VintaSoft Imaging .NET SDK

VintaSoft hat sich entschieden, keine Funktionalität für Die Konvertierung von HTML-Seiten in PDF-Dokumente erfolgt in den SDKs, da diese Aufgabe sehr komplex ist und bereits in modernen Webbrowsern implementiert wurde.

Gleichzeitig ermöglichen das VintaSoft Imaging .NET SDK und das VintaSoft PDF .NET Plug-in das Erstellen, Anzeigen, Überprüfen, Drucken, Kommentieren, Bearbeiten, Schützen, Signieren, Optimieren, Komprimieren, Konvertieren und Speichern von PDF- und PDF/A-Dokumenten unter Windows, Linux und macOS.

Dementsprechend kann das VintaSoft SDK zur Weiterverarbeitung des erstellten PDF-Dokuments verwendet werden, nämlich:

Detaillierte Informationen zu den Möglichkeiten der PDF-Dokumentenverarbeitung mit VintaSoft Imaging .NET SDK + VintaSoft PDF .NET Plug-in finden Sie hier: https://www.vintasoft.com/de/vspdf-dotnet-index.html