Azure Tables (Wie es für Entwickler funktioniert)
PDF (Portable Document Format)-Dateien werden häufig verwendet, um Dokumente plattformübergreifend in einem einheitlichen Format zu teilen und zu bewahren. In diesem Artikel werden wir erkunden, wie man mit der wkhtmltopdf-Bibliothek PDF-Dateien in C++ erzeugt. Es handelt sich um ein Open-Source-Kommandozeilen-Tool, das dazu verwendet wird, HTML-Inhalte in PDF-Dateien zu konvertieren. Erfahren Sie, wie Sie mit wkhtmltopdf in C++ programmgesteuert PDF-Dokumente aus HTML-Inhalten erstellen. Schritt-für-Schritt-Tutorial für Entwickler.
wkhtmltopdf Bibliothek
wkhtmltopdf ist ein Open-Source-Kommandozeilen-Tool und Rendering-Engine, das HTML-Webseiten oder HTML-Inhalte in PDF-Dokumente umwandelt. Es nutzt die WebKit-Rendering-Engine, um HTML, CSS und JavaScript zu analysieren und darzustellen, und generiert dann eine PDF-Datei basierend auf den gerenderten Inhalten.
"wkhtmltopdf C++ Bibliothek" (auch bekannt als "wkhtmltopdf C API"). Diese Bibliothek bietet eine C++-Schnittstelle zu dem wkhtmltopdf Befehlszeilentool, mit dem Sie PDF-Dateien aus HTML-Inhalten direkt in Ihren C++-Anwendungen erstellen können. Lassen Sie uns den Schritt-für-Schritt-Prozess der HTML-zu-PDF-Konvertierung in C++ mit der wkhtmltopdf-Bibliothek vertiefen.
Voraussetzungen
Um PDF-Dateien in C++ zu erstellen, benötigen wir Folgendes:
- Einen C++-Compiler wie GCC oder Clang, der auf Ihrem System installiert ist. Sie können jede IDE verwenden, die C++-Programmierung unterstützt.
- wkhtmltopdf-Bibliothek heruntergeladen und installiert. Sie können die neueste Version von der offiziellen wkhtmltopdf-Website herunterladen und gemäß den Anweisungen Ihres Betriebssystems installieren.
- Grundkenntnisse in C++-Programmierung.
C++ PDF-Projekt in Code::Blocks erstellen
Erstellen Sie ein Projekt in Code::Blocks und folgen Sie dann den untenstehenden Schritten, um den Bibliotheksordner und die Datei zu verknüpfen. Wenn Sie eine andere IDE verwenden, können die Optionen abweichen, aber Sie müssen die heruntergeladene Bibliothek in Ihrem Projekt referenzieren, um es zum Laufen zu bringen.
1. Hinzufügen von Include-Ordnern in Suchverzeichnissen
Um sicherzustellen, dass Code::Blocks die erforderlichen Header-Dateien finden kann, müssen wir die Suchverzeichnisse einrichten.
- Klicken Sie im Menü auf "Projekt" und wählen Sie "Build-Optionen". Stellen Sie sicher, dass Sie "Debug" auswählen.
- Wählen Sie im Dialogfeld für die "Build-Optionen" die Registerkarte "Suchverzeichnisse" aus.
- 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.
- Klicken Sie abschließend auf "OK", um das Dialogfeld zu schließen.

2. das Linken der Bibliotheken in den Linker-Einstellungen
Um die wkhtmltox-Bibliothek zu verknüpfen, folgen Sie diesen Schritten:
- Klicken Sie erneut im Menü auf "Projekt" und wählen Sie "Build-Optionen". Stellen Sie sicher, dass Sie "Debug" auswählen.
- Wählen Sie im Dialogfeld für die "Build-Optionen" die Registerkarte "Linker-Einstellungen" aus.
- 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.
- Klicken Sie auf 'Öffnen', um die Bibliothek hinzuzufügen.
- Klicken Sie abschließend auf "OK", um das Dialogfeld zu schließen.

Schritte zur Erstellung eines PDFs in C++ mit wkhtmltopdf
1. Erforderliche Bibliotheken einbeziehen
Um zu beginnen, fügen wir zunächst die benötigten Header-Dateien ein, um die Funktionalitäten der wkhtmltopdf-Bibliothek in unserem C++-Programm zu nutzen. Binden Sie die folgenden Header-Dateien an den Anfang Ihrer main.cpp Quellcodedatei ein:
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h> // Include wkhtmltopdf library headers
#include <iostream>
#include <fstream>
#include <string>
#include <wkhtmltox/pdf.h> // Include wkhtmltopdf library headers
2. die GUI-Komponente deaktivieren
Wenn Sie nicht mit einer GUI arbeiten, müssen Sie diese deaktivieren, um Fehler zu vermeiden. Der Code sieht wie folgt aus:
wkhtmltopdf_init(false); // Initialize the wkhtmltopdf library in non-GUI mode
wkhtmltopdf_init(false); // Initialize the wkhtmltopdf library in non-GUI mode
3. initialisiere Einstellungen und Konverter
Als Nächstes müssen wir globale und Objekteinstellungen-Zeiger initialisieren und dann den wkhtmltopdf Konverter.
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
wkhtmltopdf_global_settings* gs = wkhtmltopdf_create_global_settings();
wkhtmltopdf_object_settings* os = wkhtmltopdf_create_object_settings();
wkhtmltopdf_converter* converter = wkhtmltopdf_create_converter(gs);
4. Hinzufügen von PDF-Inhalten
Erstellen wir nun einen HTML-String, um einige Inhalte in unser neu erstelltes PDF-Dokument einzufügen. Der Code sieht wie folgt aus:
std::string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
std::string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
5. HTML-String in PDF-Datei konvertieren
Wkhtmltopdf bietet eine Konvertierungsmethode, um HTML-Inhalte in PDF-Dateien umzuwandeln. Hier ist der Codeausschnitt:
wkhtmltopdf_convert(converter); // Converts HTML content to PDF
wkhtmltopdf_convert(converter); // Converts HTML content to PDF
6. die Ausgabe als Speicherpuffer erhalten
Mit der wkhtmltopdf_get_output Funktion können wir die PDF-Daten als Speicherpufferstrom erhalten. Es gibt auch die Länge des PDFs zurück. Das folgende Beispiel führt diese Aufgabe aus:
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData); // Get PDF data and length
const unsigned char* pdfData;
int pdfLength = wkhtmltopdf_get_output(converter, &pdfData); // Get PDF data and length
7. PDF-Datei speichern
Der pdfData Zeiger enthält nun den Zeichendatenstrom von dem wkhtmltopdf_converter. Um in einer PDF-Datei zu speichern, geben wir zuerst den Dateipfad an, wo wir das PDF speichern möchten. Dann öffnen wir mit dem Ausgabe-Dateistrom die Datei im Binärmodus und schreiben den pdfData hinein, indem wir ihn mit der reinterpret_cast Funktion typumwandeln. Abschließend schließen wir die Datei.
const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary); // Open file in binary mode
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength); // Write PDF data
outputFile.close(); // Close the file
const char* outputPath = "file.pdf";
std::ofstream outputFile(outputPath, std::ios::binary); // Open file in binary mode
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength); // Write PDF data
outputFile.close(); // Close the file
8. Speicherplatz freimachen
Nachdem erfolgreich eine PDF-Datei erstellt wurde, ist es wichtig, die von wkhtmltopdf zugewiesenen Ressourcen zu bereinigen, andernfalls entsteht ein Speicherleck.
wkhtmltopdf_destroy_converter(converter); // Destroy the converter
wkhtmltopdf_destroy_object_settings(os); // Destroy object settings
wkhtmltopdf_destroy_global_settings(gs); // Destroy global settings
wkhtmltopdf_deinit(); // Deinitialize the library
std::cout << "PDF created successfully." << std::endl; // Inform the user
wkhtmltopdf_destroy_converter(converter); // Destroy the converter
wkhtmltopdf_destroy_object_settings(os); // Destroy object settings
wkhtmltopdf_destroy_global_settings(gs); // Destroy global settings
wkhtmltopdf_deinit(); // Deinitialize the library
std::cout << "PDF created successfully." << std::endl; // Inform the user
9. Den Code ausführen und eine PDF-Datei erzeugen
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:

Create PDF File in C
IronPDF
IronPDF ist eine .NET C# PDF-Bibliothek, die es Entwicklern ermöglicht, mühelos PDF-Dokumente aus HTML zu erstellen. Es bietet eine intuitive API, die den Prozess der Erstellung von PDF-Dateien aus HTML vereinfacht.
IronPDF ist robust und vielseitig, wenn es darum geht, mit PDFs zu arbeiten. Es erstellt nicht nur PDFs aus einfachen HTML-Dokumenten, sondern auch aus komplexen Webseiten mit CSS-Stil, 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 ein Beispielcode, um PDF mit IronPDF zu erstellen mittels HTML-String-zu-PDF-Konvertierung:
using IronPdf;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF 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 a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
Imports IronPdf
' Instantiate Renderer
Private renderer = New ChromePdfRenderer()
' Create a PDF from an HTML string using C#
Private pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
' Export to a file or Stream
pdf.SaveAs("output.pdf")
Wir erstellen eine Instanz von ChromePdfRenderer, um den HTML-Inhalt als PDF darzustellen. Wir rufen die RenderHtmlAsPdf Methode auf dem renderer Objekt auf und übergeben den HTML-String. Dies generiert das PDF-Dokument, und dann speichern wir das PDF-Dokument mit der SaveAs Methode.

Für weitere Details, wie man PDF aus verschiedenen Ressourcen mit IronPDF erstellt, besuchen Sie bitte die IronPDF-Codebeispiele-Seite.
Abschluss
In diesem Artikel erkundeten wir die PDF-Erzeugung in C++ mit der wkhtmltopdf C++ Bibliothek und lernten auch, wie man IronPDF verwendet, um PDF-Dokumente in C# zu erzeugen.
Mit IronPDF wird das Erstellen von PDF-Dateien aus HTML-Inhalten zu einer unkomplizierten Aufgabe in .NET-Framework-Sprachen. Sein umfangreiches Funktionsspektrum macht es zu einem wertvollen Werkzeug für Entwickler, die HTML zu 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 muss es lizenziert werden. Es bietet auch einen kostenlosen Test für kommerzielle Zwecke, um seine vollständige Funktionalität auszuprobieren. Laden Sie IronPDF herunter und probieren Sie es selbst aus.




