Zum Fußzeileninhalt springen
PDF-WERKZEUGE

Wie man HTML in PDF in C++ konvertiert

Die Möglichkeit, HTML-Dateien oder -Inhalte in PDF-Seiten umzuwandeln, ist eine wertvolle Funktion in vielen Anwendungen. In C++ kann es ziemlich mühsam sein, eine Anwendung von Grund auf neu zu erstellen, um HTML in PDF-Format-Dateien zu generieren. In diesem Artikel werden wir erkunden, wie man HTML in C++ mithilfe der wkhtmltopdf-Bibliothek in PDF umwandelt.

WKHTMLTOPDF-Bibliothek

wkhtmltopdf ist ein Open-Source-Kommandozeilen-Tool, das nahtlos HTML-Textseiten in hochwertige PDF-Dokumente umwandelt. Durch die Nutzung seiner Funktionen in C++-Programmen können wir HTML-String-Inhalte einfach in das PDF-Format umwandeln. Lassen Sie uns den Schritt-für-Schritt-Prozess der Umwandlung von HTML-Seiten in PDFs in C++ unter Verwendung der wkhtmltopdf-Bibliothek vertiefen.

Voraussetzungen

Um einen HTML-zu-PDF-Dateikonverter in C++ zu erstellen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  1. Einen C++-Compiler wie GCC oder Clang, der auf Ihrem System installiert ist.
  2. wkhtmltopdf-Bibliothek installiert. Sie können die neueste Version von der offiziellen wkhtmltopdf-Website herunterladen und gemäß den Anweisungen Ihres Betriebssystems installieren.
  3. Grundkenntnisse in C++-Programmierung.

Erstellen eines C++ HtmltoPdf-Projekts in Code::Blocks

Um ein C++ PDF-Umwandlungsprojekt in Code::Blocks zu erstellen, befolgen Sie diese Schritte:

  1. Öffnen Sie die Code::Blocks-IDE.
  2. Gehen Sie zum "Datei"-Menü, wählen Sie "Neu" und dann "Projekt", um den Neuprojekt-Assistenten zu öffnen.
  3. Wählen Sie im Neuprojekt-Assistenten "Konsolenanwendung" aus.
  4. Wählen Sie die C++-Sprache.
  5. Geben Sie den Projekttitel und den Ort an, an dem Sie es speichern möchten. Klicken Sie auf "Weiter".
  6. Wählen Sie den geeigneten C++-Compiler und das Build-Ziel, wie z.B. Debug oder Release. Klicken Sie auf "Fertigstellen".

Suchverzeichnisse einrichten

Um sicherzustellen, dass Code::Blocks die notwendigen Header-Dateien finden kann, müssen wir die Suchverzeichnisse einrichten:

  1. Klicken Sie im Menü auf "Projekt" und wählen Sie "Build-Optionen". Stellen Sie sicher, dass Sie "Debug" auswählen.
  2. Wählen Sie im Dialogfeld für die "Build-Optionen" die Registerkarte "Suchverzeichnisse" aus.
  3. Klicken Sie unter 'Compiler' auf 'Hinzufügen'. Navigieren Sie zum Verzeichnis, in dem sich die wkhtmltox-Header-Dateien befinden (z. B. C:\Program Files\wkhtmltopdf\include), und wählen Sie dieses aus.
  4. Klicken Sie abschließend auf "OK", um das Dialogfeld zu schließen.

Wie man HTML in PDF in C++ umwandelt: Abbildung 1 - Suchverzeichnisse

Verknüpfung der Bibliotheken

Um die wkhtmltox-Bibliothek zu verknüpfen, folgen Sie diesen Schritten:

  1. Klicken Sie erneut auf das "Projekt"-Menü in der Menüleiste und wählen Sie "Build-Optionen". Stellen Sie sicher, dass Sie "Debug" auswählen.
  2. Wählen Sie im Dialogfeld für die "Build-Optionen" die Registerkarte "Linker-Einstellungen" aus.
  3. Klicken Sie unter 'Bibliotheken verknüpfen' auf 'Hinzufügen'. Navigieren Sie zum Verzeichnis, in dem sich die wkhtmltox-Bibliotheksdateien befinden (z. B. C:\Program Files\wkhtmltopdf\lib), und wählen Sie die entsprechende Bibliotheksdatei aus.
  4. Klicken Sie auf 'Öffnen', um die Bibliothek hinzuzufügen.
  5. Klicken Sie abschließend auf "OK", um das Dialogfeld zu schließen.

Wie man HTML in PDF in C++ umwandelt: Abbildung 2 - Verlinkung von Bibliotheken

Schritte zur einfachen Konvertierung von HTML in PDF in C++

Schritt 1: Einbindung der Bibliothek zur Konvertierung von HTML-Dateien

Um zu beginnen, binden Sie die notwendigen Header-Dateien ein, um die Funktionen der wkhtmltopdf-Bibliothek in Ihrem C++-Programm zu verwenden. Binden Sie die folgenden Header-Dateien am Anfang der main.cpp-Quelldatei ein, wie im folgenden Beispiel gezeigt:

#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h>
C++

Schritt 2: Initialisierung des Konverters

Um HTML in PDF umzuwandeln, müssen wir den wkhtmltopdf-Konverter initialisieren. Der Code sieht wie folgt aus:

// Initialize the wkhtmltopdf library
wkhtmltopdf_init(false);

// Create global settings object
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();

// Create object settings object
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();

// Create the PDF converter with global settings
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
// Initialize the wkhtmltopdf library
wkhtmltopdf_init(false);

// Create global settings object
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();

// Create object settings object
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();

// Create the PDF converter with global settings
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
C++

Schritt 3: Einstellen des HTML-Inhalts

Nun geben wir den HTML-Inhalt an, der in ein PDF umgewandelt werden soll. Sie können entweder eine HTML-Datei laden oder den String direkt angeben.

std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>";

// Add the HTML content to the converter
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
std::string htmlString = "<html><body><h1>Hello, World!</h1></body></html>";

// Add the HTML content to the converter
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
C++

Schritt 4: Konvertierung von HTML in PDF

Mit dem Konverter und HTML-Inhalt bereit, können wir die Umwandlung von HTML in eine PDF-Datei durchführen. Verwenden Sie den folgenden Code-Schnipsel:

// Perform the actual conversion
if (!wkhtmltopdf_convert(converter)) {
    std::cerr << "Conversion failed!" << std::endl;
}
// Perform the actual conversion
if (!wkhtmltopdf_convert(converter)) {
    std::cerr << "Conversion failed!" << std::endl;
}
C++

Schritt 5: Ausgabe als Speicherpuffer erhalten

Mit der Funktion wkhtmltopdf_get_output können wir die vorhandenen PDF-Daten als Speicherpufferstrom erhalten. Es gibt auch die Länge des PDFs zurück. Das folgende Beispiel führt diese Aufgabe aus:

// Retrieve the PDF data in memory buffer
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
// Retrieve the PDF data in memory buffer
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
C++

Schritt 6: Speichern der PDF-Datei

Sobald die Umwandlung abgeschlossen ist, müssen wir die erstellte PDF-Datei auf die Festplatte speichern. Geben Sie den Dateipfad an, wo Sie das PDF speichern möchten. Öffnen Sie dann die Datei im Binärmodus mithilfe eines Ausgabefile-Streams und schreiben Sie die pdfData darin. Schließen Sie schließlich die Datei:

const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary);

// Write the PDF data to the file
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary);

// Write the PDF data to the file
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
C++

Schritt 7: Aufräumen

Nach der Umwandlung von HTML in PDF ist es wichtig, die von wkhtmltopdf belegten Ressourcen aufzuräumen:

// Clean up the converter and settings
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);

// Deinitialize the wkhtmltopdf library
wkhtmltopdf_deinit();

std::cout << "PDF saved successfully." << std::endl;
// Clean up the converter and settings
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);

// Deinitialize the wkhtmltopdf library
wkhtmltopdf_deinit();

std::cout << "PDF saved successfully." << std::endl;
C++

Schritt 8: Ausführen des Codes und Erzeugen der PDF-Datei

Nun bauen Sie das Projekt und führen den Code mit F9 aus. Die Ausgabe wird generiert und im Projektordner gespeichert. Das resultierende PDF sieht wie folgt aus:

Wie man HTML in PDF in C++ umwandelt: Abbildung 3 - PDF-Ausgabe

HTML-Datei zu PDF-Datei in C

IronPDF

IronPDF HTML-to-PDF Conversion Library ist eine robuste .NET- und .NET Core C#-Bibliothek, die Entwicklern ermöglicht, mühelos PDF-Dokumente aus HTML-Inhalten zu erstellen. Es bietet eine einfache und intuitive API, die den Prozess der Umwandlung von HTML-Webseiten in PDFs vereinfacht und es zu einer beliebten Wahl für verschiedene Anwendungen und Anwendungsfälle macht.

Einer der Hauptvorteile von IronPDF ist seine Vielseitigkeit. Es unterstützt nicht nur die Umwandlung einfacher HTML-Dokumente, sondern auch komplexer Webseiten mit CSS-Styling, JavaScript-Interaktionen und sogar dynamischen Inhalten. Darüber hinaus können Sie verschiedene PDF-Konverter entwickeln, indem Sie auf seine Konvertierungsmethoden schnell zugreifen.

Hier ist das Beispiel zur Umwandlung von HTML-String in PDF mit IronPDF in C#:

using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");
using IronPdf;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create PDF content from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

Die PDF-Ausgabe:

Wie man HTML in PDF in C++ umwandelt: Abbildung 4 - IronPDF-Ausgabe

Für weitere Details zur Umwandlung verschiedener HTML-Dateien, Webseiten-URLs und Bilder in PDF besuchen Sie bitte diese HTML-zu-PDF-Codebeispiele.

Mit IronPDF wird das Erstellen von PDF-Dateien aus HTML-Inhalten zu einer unkomplizierten Aufgabe in .NET-Framework-Sprachen. Seine intuitive API und umfangreiche Funktionspalette machen es zu einem wertvollen Werkzeug für Entwickler, die HTML in PDF in ihren C#-Projekten umwandeln müssen. Ob es um das Erstellen von Berichten, Rechnungen oder sonstigen Dokumenten geht, die eine präzise HTML-zu-PDF-Konvertierung benötigen, IronPDF ist eine zuverlässige und effiziente Lösung.

IronPDF ist kostenlos für Entwicklungszwecke, aber für kommerzielle Nutzung ist eine Lizenz erforderlich. Es bietet auch eine Kostenlose Testversion der vollständigen Funktionalität von IronPDF für kommerzielle Nutzung, um seine vollständige Funktionalität zu testen. Sie können die Software von IronPDF herunterladen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen