Mit der Macht des Internets ist alles digital geworden und papierlose Systeme sind populär geworden. Die digitalen Dokumente, dh PDF, gehören zu den Bausteinen papierloser Systeme, die das Leben durch automatisierte Generierungs und Verarbeitungsfunktionen einfacher gemacht haben. Die meisten Unternehmen verwenden die PDF Dokumentenautomatisierung zum dynamischen Generieren von Berichten, Quittungen, Rechnungen und anderen Geschäftsdokumenten. Daher zeige ich in diesem Artikel, wie Sie die Funktionen der PDF-Automatisierung in C++-basierte Anwendungen integrieren und PDF Dateien mit C++ generieren.
C++ PDF Bibliothek
Zum Erstellen von PDF Dateien verwenden wir die API Aspose.PDF for C++, eine native C++ Bibliothek zum programmgesteuerten Arbeiten mit PDF Dokumenten. Es ermöglicht Ihnen, interaktive PDF Dokumente mit Unterstützung einer Vielzahl von PDF-Elementen zu erstellen. Aspose.PDF for C++ ist auf NuGet sowie im Abschnitt Downloads von Aspose verfügbar.
Erstellen Sie eine PDF Datei in C++
Zunächst erstellen wir eine einfache PDF Datei und fügen der ersten Seite Text in Form eines Absatzes hinzu. Folgende Schritte sind zu befolgen:
- Erstellen Sie ein Document objekt.
- Fügen Sie eine Seite zu PageCollection des Dokuments hinzu.
- Holen Sie sich den Absatz der Seite.
- Erstellen Sie ein TextFragment objekt und fügen Sie es dem Absatz hinzu.
- Speichern Sie das PDF Dokument.
Das folgende Codebeispiel zeigt, wie Sie ein PDF Dokument in C++ erstellen.
// Dokument erstellen
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Die Seitennummerierung beginnt mit 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();
// Textfragment erstellen
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// Textstatus festlegen
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// Zum Absatz hinzufügen
paragraps->Add(text);
// Text zum Absatz hinzufügen
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// PDF Datei speichern
doc->Save(u"Example1.pdf");
Ausgabe
Erstellen Sie eine PDF Datei mit TextBuilder in C++
In diesem Abschnitt zeige ich Ihnen, wie Sie mit der Klasse TextBuilder verschiedene Textfragmente und Absätze an die Seite anhängen. Außerdem erfahren Sie in diesem Beispiel, wie Sie die Position des Textfragments auf der Seite festlegen. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs aufgeführt:
- Erstellen Sie ein Document objekt.
- Fügen Sie dem Dokument eine Seite hinzu.
- Erstellen Sie ein TextBuilder objekt.
- Erstellen Sie ein TextFragment und fügen Sie seinen Text hinzu.
- Legen Sie die Position des TextFragments fest.
- Hängen Sie TextFragment mit dem TextBuilder an.
- PDF Dokument speichern.
Das folgende Codebeispiel zeigt, wie Sie eine PDF Datei mit TextBuilder in C++ erstellen.
// Document objekt erstellen
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Erstellen Sie TextBuilder
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// TextFragment erstellen
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// TextFragment anhängen
tb->AppendText(text);
// Erstellen Sie ein weiteres TextFragment
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// Erstellen Sie ein weiteres TextFragment
text = MakeObject<TextFragment>(u"It demonstrates how to use TextBuilder to append text into PDF file.");
text->set_Position(MakeObject<Position>(200, 700));
tb->AppendText(text);
// TextAbsatz erstellen
auto par = MakeObject<TextParagraph>();
par->set_Position(MakeObject<Position>(250,650));
par->AppendLine(u"New paragraph");
par->AppendLine(u"Line 2");
par->AppendLine(u"Line 3");
tb->AppendParagraph(par);
// PDF Dokument speichern
doc->Save(u"Created PDF.pdf");
Ausgabe
Erstellen Sie eine PDF Datei mit Bild in C++
Mit Aspose.PDF for C++ können Sie auch Bilder erstellen und den PDF Dokumenten hinzufügen. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs aufgeführt:
- Erstellen Sie ein Document objekt.
- Fügen Sie dem Dokument eine Seite hinzu.
- Erstellen Sie ein hinzuzufügendes Bild.
- Fügen Sie das Bild der PDF Datei hinzu.
- PDF Datei speichern.
Das folgende Codebeispiel zeigt, wie Sie in C++ ein Bild erstellen und einem PDF Dokument hinzufügen.
// Document objekt erstellen
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// Erstellen Sie ein Bild
auto stream = MakeObject<IO::MemoryStream>();
SharedPtr<Bitmap> bitmap = MakeObject<Bitmap>(200, 200);
SharedPtr<Graphics> graphics = Graphics::FromImage(bitmap);
graphics->Clear(System::Drawing::Color::get_Yellow());
graphics->FillRectangle(Brushes::get_Blue(), System::Drawing::Rectangle(0, 0, 200, 100));
bitmap->Save(stream, Imaging::ImageFormat::get_Bmp());
// Rechteck erstellen
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rect = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);
// Bild zu PDF hinzufügen
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// PDF Dokument speichern
doc->Save(u"Created PDF.pdf");
Ausgabe
Erstellen Sie eine PDF Datei mit Anhängen in C++
Das PDF Format ermöglicht auch das Hinzufügen von Anhängen zum Dokument. Es gibt eine Vielzahl von Dateiformaten, die als Anhang zur PDF Datei hinzugefügt werden können. Im Folgenden sind die Schritte zum Einbetten einer Datei in PDF mit Aspose.PDF for C++ aufgeführt:
- Laden Sie eine anzuhängende Datei in SharedPtr .
- Erstellen Sie ein Objekt der Document Klasse.
- Betten Sie die Datei in das Dokument ein.
- Speichern Sie die PDF Datei.
Das folgende Codebeispiel zeigt, wie Sie dem PDF Dokument in C++ eine Anlage hinzufügen.
// Erstellen Sie eine Textdatei
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// Anhang zur Anhangssammlung des Dokuments hinzufügen
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// Fügen Sie eine Seite zu PDF hinzu
doc->get_Pages()->Add();
// PDF Dokument speichern
doc->Save(u"Created PDF.pdf");
Ausgabe
Erfahren Sie mehr über Aspose.PDF for C++
Weitere Informationen zu Aspose.PDF for C++ finden Sie in der Dokumentation und im Quellcode Beispiele.