PDF-WERKZEUGE

Wie man PDF-Dateien in C++ erstellt

Veröffentlicht 5. Juli 2023
Teilen Sie:

PDF(Portable Document Format) dateien werden häufig für die gemeinsame Nutzung und Aufbewahrung von Dokumenten in einem einheitlichen Format über verschiedene Plattformen hinweg verwendet. In diesem Artikel wird gezeigt, wie man mit der wkhtmltopdf-Bibliothek PDF-Dateien in C++ erzeugt. Es ist ein Open-Source-Befehlszeilen-Tool, das zur Konvertierung von HTML-Inhalten in PDF-Dateien verwendet wird. Indem wir die Leistungsfähigkeit dieser Bibliothek nutzen, können wir in unseren C++-Anwendungen programmatisch PDF-Dokumente aus HTML-Inhalten erstellen.

WkhtmltoPdf-Bibliothek

wkhtmltopdf ist ein Open-Source-Befehlszeilenwerkzeug und eine Rendering-Engine, die HTML-Webseiten oder HTML-Inhalte in PDF-Dokumente umwandelt. Es nutzt die WebKit-Rendering-Engine, um HTML, CSS und JavaScript zu analysieren und zu rendern, und erzeugt dann eine PDF-Datei auf der Grundlage des gerenderten Inhalts.

"wkhtmltopdf C++ Bibliothek"(auch bekannt als "wkhtmltopdf C API"). Diese Bibliothek bietet eine C++-Schnittstelle für das Kommandozeilen-Tool "wkhtmltopdf", mit dem Sie PDF-Dateien aus HTML-Inhalten direkt in Ihren C++-Anwendungen erstellen können. Lassen Sie uns den schrittweisen Prozess der HTML-zu-PDF-Konvertierung in C++ unter Verwendung der Wkhtmltopdf-Bibliothek nachvollziehen.

Voraussetzungen

Um PDF-Dateien in C++ zu erstellen, müssen die folgenden Voraussetzungen erfüllt sein:

  1. Ein C++-Compiler wie GCC oder Clang, der auf Ihrem System installiert ist. Sie können einfach jede IDE verwenden, die C++-Programmierung unterstützt.

  2. wkhtmltopdf-Bibliothek heruntergeladen und installiert. Sie können die neueste Version von der offiziellen Website herunterladenwkhtmltopdf website und installieren Sie es gemäß den Anweisungen Ihres Betriebssystems.

  3. Grundkenntnisse in der C++-Programmierung.

C++ PDF-Projekt in Code:Blocks erstellen

Erstellen Sie ein Projekt in Code::Blocks und folgen Sie dann den unten stehenden Schritten, um den Bibliotheksordner und die Datei zu verknüpfen. Wenn Sie eine andere IDE verwenden, können die Optionen anders sein, aber Sie müssen die heruntergeladene Bibliothek in Ihrem Projekt referenzieren, damit es funktioniert.

1. Include-Ordner in Suchverzeichnisse einfügen

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

  1. Klicken Sie auf das Menü "Projekt" in der Menüleiste und wählen Sie die "Erstellungsoptionen". Stellen Sie sicher, dass Sie "Debug" auswählen.

  2. Wählen Sie im Dialogfeld "Erstellungsoptionen" die Registerkarte "Verzeichnisse suchen".

  3. Klicken Sie unter der Registerkarte "Compiler" auf die Schaltfläche "Hinzufügen".

  4. Wechseln Sie in das Verzeichnis, in dem sich die wkhtmltox-Header-Dateien befinden(z. B. C:\Programmdateien\wkhtmltopdf\include)und wählen Sie es aus.

  5. Klicken Sie abschließend auf "OK", um das Dialogfeld zu schließen.

    Wie man PDF-Dateien in C++ erstellt: Abbildung 1

2. Linken der Bibliotheken in Linker-Einstellungen

Um gegen die wkhtmltox-Bibliothek zu linken, gehen Sie wie folgt vor:

  1. Klicken Sie erneut auf das Menü "Projekt" in der Menüleiste und wählen Sie "Erstellungsoptionen". Stellen Sie sicher, dass Sie "Debug" auswählen.

  2. Wählen Sie im Dialogfeld "Erstellungsoptionen" die Registerkarte "Linker-Einstellungen".

  3. Klicken Sie auf der Registerkarte "Bibliotheken verknüpfen" auf die Schaltfläche "Hinzufügen".

  4. Wechseln Sie zu dem Verzeichnis, in dem sich die wkhtmltox Bibliotheksdateien befinden(z. B. C:\Programmdateien\wkhtmltopdf\lib)und wählen Sie die entsprechende Bibliotheksdatei aus.

  5. Klicken Sie auf "Öffnen", um die Bibliothek zu Ihrem Projekt hinzuzufügen.

  6. Klicken Sie abschließend auf "OK", um das Dialogfeld zu schließen.

    Wie man PDF-Dateien in C++ erstellt: Abbildung 2

Schritte zur Erstellung einer PDF-Datei in C++ mit Wkhtmltopdf

1. Erforderliche Bibliotheken einbeziehen

Zunächst werden wir die notwendigen Header-Dateien einbinden, um die Funktionalitäten der wkhtmltopdf-Bibliothek in unserem C++-Programm zu nutzen. Fügen Sie die folgenden Header-Dateien am Anfang der Quellcodedatei main.cpp ein:

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

2. Deaktivieren Sie die GUI-Komponente

Wenn Sie nicht mit der grafischen Benutzeroberfläche arbeiten, müssen Sie diese deaktivieren, um Fehler zu vermeiden. Der Code lautet wie folgt:

wkhtmltopdf_init(false);
wkhtmltopdf_init(false);
C++

3. Initialisierung von Einstellungen und Konverter

Als Nächstes müssen wir globale und objektbezogene 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);
C++

4. Hinzufügen von PDF-Inhalten

Lassen Sie uns nun eine HTML-Zeichenkette erstellen, um einige Inhalte in unser neu erstelltes PDF-Dokument einzufügen. Der Code lautet wie folgt:

string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
string htmlString = "<html><body><h1>Create a PDF in C++ using WKHTMLTOPDF Library</h1></body></html>";
wkhtmltopdf_add_object(converter, os, htmlString.c_str());
C++

5. HTML-String in PDF-Datei umwandeln

Wkhtmltopdf bietet eine Konvertierungsmethode, um HTML-Inhalte in PDF zu konvertieren. Hier ist das Codeschnipsel:

wkhtmltopdf_convert(converter);
wkhtmltopdf_convert(converter);
C++

6. Ausgabe als Speicherpuffer erhalten

Mit der Funktion wkhtmltopdf_get_output können wir die PDF-Daten als Speicherpufferstrom erhalten. Sie gibt auch die Länge der PDF-Datei zurück. Das folgende Beispiel wird diese Aufgabe erfüllen:

const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
const unsigned char* pdfData;
const int pdfLength = wkhtmltopdf_get_output(converter, &pdfData);
C++

7. PDF-Datei speichern

Der pdfData-Zeiger enthält nun den Zeichenstrom des wkhtmltopdf_converter. Um in einer PDF-Datei zu speichern, geben wir zunächst den Dateipfad an, unter dem wir die PDF-Datei speichern wollen. Dann öffnen wir die Datei mit Hilfe des Ausgabedateistroms im Binärmodus und schreiben die "pdfData" in sie, indem wir sie mit der Funktion "reinterpret_cast" typisieren. Schließlich schließen wir die Datei.

const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
const char* outputPath = "file.pdf";
ofstream outputFile(outputPath, ios::binary);
outputFile.write(reinterpret_cast<const char*>(pdfData), pdfLength);
outputFile.close();
C++

8. Freigeben von Speicherplatz

Nach der erfolgreichen Erstellung einer PDF-Datei ist es wichtig, die von Wkhtmltopdf zugewiesenen Ressourcen zu bereinigen, da es sonst zu einem Speicherverlust kommen kann.

wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();

cout << "PDF created successfully." << endl;
wkhtmltopdf_destroy_converter(converter);
wkhtmltopdf_destroy_object_settings(os);
wkhtmltopdf_destroy_global_settings(gs);
wkhtmltopdf_deinit();

cout << "PDF created successfully." << endl;
C++

9. Ausführen des Codes und Erzeugen einer PDF-Datei

Erstellen Sie nun das Projekt und führen Sie den Code mit F9 aus. Die Ausgabe wird generiert und im Projektordner gespeichert. Die resultierende PDF-Datei sieht wie folgt aus:

Wie man PDF-Dateien in C++ erstellt: Abbildung 3

PDF-Datei in C# erstellen;

IronPDF

IronPDF ist eine .NET C# PDF-Bibliothek, mit der Entwickler mühelos PDF-Dokumente aus HTML erstellen können. Es bietet eine intuitive API, die den Prozess der Erstellung von PDF-Dateien aus HTML vereinfacht.

IronPDF ist eine robuste und vielseitige Lösung für die Arbeit mit PDF-Dateien. Das Programm erstellt nicht nur aus einfachen HTML-Dokumenten ein PDF, sondern auch aus komplexen Webseiten mit CSS-Styling, JavaScript-Interaktionen und sogar dynamischen Inhalten. Außerdem können Sie verschiedene PDF-Konverter mit schnellem Zugriff auf ihre Konvertierungsmethoden entwickeln.

Hier ist ein Beispielcode fürpDF mit IronPDF erstellen mitKonvertierung von HTML-Strings in PDF:

using IronPdf;

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

// Create a PDF from a 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 a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");

// Export to a file or Stream
pdf.SaveAs("output.pdf");
C++

Wir erstellen eine Instanz von ChromePdfRenderer, um den HTML-Inhalt als PDF zu rendern. Wir rufen die Methode "RenderHtmlAsPdf" für das "Renderer"-Objekt auf und übergeben die HTML-Zeichenfolge. Dadurch wird das PDF-Dokument erzeugt, das dann mit der Methode SaveAs gespeichert wird.

Wie man PDF-Dateien in C++ erstellt: Abbildung 4

Für weitere Informationen übererstellen einer PDF-Datei aus verschiedenen Ressourcen mit IronPDF, besuchen Sie bitte dieseIronPDF Code-Beispiele seite.

Schlussfolgerung

In diesem Artikel haben wir die PDF-Erzeugung in C++ mit der wkhtmltopdf C++ Library untersucht und gelernt, wie man mit IronPDF PDF-Dokumente in C# erzeugt.

Mit IronPDF wird die Generierung von PDF-Dateien aus HTML-Inhalten zu einer unkomplizierten Aufgabe in .NET-Framework-Sprachen. Seine umfangreichen Funktionen machen es zu einem wertvollen Werkzeug für Entwickler, die Folgendes konvertieren müssenHTML zu PDF in ihren C#-Projekten. Ob es um die Erstellung von Berichten, Rechnungen oder anderen Dokumenten geht, die eine präzise HTML-zu-PDF-Konvertierung erfordern, IronPDF ist eine zuverlässige und effiziente Lösung.

IronPDF ist für Entwicklungszwecke kostenlos, aber für die kommerzielle Nutzung muss es lizenziert werden. Sie bietet auch einekostenloser Test für die kommerzielle Nutzung, um seine vollständige Funktionalität zu testen. IronPDF herunterladen und probieren Sie es selbst aus.

< PREVIOUS
Wie man PDF-Dateien in C++ anzeigt
NÄCHSTES >
Wie man PDF-Dateien in C++ liest

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

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