Erstellen Sie Word Dokumente in C++

Aspose.Words ist eine funktionsreiche Sammlung von APIs, mit der Sie MS Word Dokumente programmgesteuert erstellen, bearbeiten und konvertieren können. Es bietet eine große Auswahl an grundlegenden sowie erweiterten Funktionen zur Bearbeitung von Textverarbeitungsdokumenten. In diesem Artikel erfahren Sie, wie Sie Aspose.Words for C++ verwenden und MS Word Dokumente mit C++ von Grund auf neu erstellen. Die Schritt-für-Schritt-Anleitung sowie Codebeispiele zeigen Ihnen, wie Sie Text, Bilder, Tabellen, Listen und andere Elemente in Word Dokumente einfügen.

C++ API zum Erstellen von MS Word Dokumenten

Mit Aspose.Words for C++ können Sie Textverarbeitungsdokumente in C++ Anwendungen ohne MS Word erstellen und bearbeiten. Sie können die API herunterladen oder sie in Ihren C++ Anwendungen installieren, indem Sie NuGet mit dem folgenden Befehl verwenden.

PM> Install-Package Aspose.Words.Cpp

Erstellen Sie MS Word Dokumente mit C++

Lassen Sie uns zunächst ein einfaches Word Dokument erstellen und es als .doc oder .docx Datei speichern. Dazu müssen Sie die folgenden Schritte ausführen:

Das folgende Codebeispiel zeigt, wie Sie ein Word-DOCX-Dokument mit C++ erstellen.

// Initialisieren Sie ein Dokument.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
// Verwenden Sie einen Document Builder, um Inhalte zum Dokument hinzuzufügen.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Text hinzufügen
builder->Writeln(u"Hello World!"); 
// Speichern Sie das Dokument auf der Festplatte.
doc->Save(u"document.docx");

Bearbeiten oder aktualisieren Sie vorhandenes Word DOC/DOCX mit C++

Sie können die vorhandenen Word Dokumente auch mit Aspose.Words for C++ bearbeiten. Dazu verwendet die API das Document Object Model (DOM) für die In-Memory-Darstellung eines Dokuments. Mit dem DOM können Sie auf die Elemente eines Word Dokuments wie Kopf-/Fußzeile, Absätze, Tabellen usw. zugreifen. Lesen Sie hier mehr über das DOM.

Um ein Word Dokument zu aktualisieren, laden Sie es einfach mit der Klasse Document und verarbeiten Sie es wie gewünscht. Im Folgenden finden Sie die Schritte zum Bearbeiten und Aktualisieren eines vorhandenen Word Dokuments.

  • Laden Sie das Word Dokument mit der Klasse Document.
  • Erstellen Sie ein Objekt der Klasse DocumentBuilder, um auf den Inhalt zuzugreifen.
  • Greifen Sie auf den gewünschten Absatz (oder ein beliebiges anderes Element) zu und aktualisieren Sie den Inhalt.
  • Speichern Sie das aktualisierte Dokument mit der methode Document->Save().

Das folgende Codebeispiel zeigt, wie Sie den Text eines Absatzes in einem Word Dokument mit C++ aktualisieren.

// Initialisieren Sie ein Dokument.
System::SharedPtr<Document> doc = System::MakeObject<Document>(u"document.docx");
// Verwenden Sie einen Document Builder, um Inhalte zum Dokument hinzuzufügen.
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Abschnitt erhalten
auto section = doc->get_Sections()->idx_get(0);
// Körper bekommen
auto body = section->get_Body();
// Holen Sie sich den ersten Absatz
auto para = body->get_FirstParagraph();
// Texte aktualisieren
auto run = para->get_Runs()->idx_get(0);
run->set_Text(u"This is the updated text."); 
// Speichern Sie das Dokument auf der Festplatte.
doc->Save(u"updated_document.docx");

Fügen Sie Bilder mit C++ in ein Word Dokument ein

Im Folgenden sind die Schritte zum Einfügen eines Bildes in MS Word Dokumente mit C++ beschrieben.

Das folgende Codebeispiel zeigt, wie Sie mit C++ ein Bild in ein Word Dokument einfügen.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc); 
// Fügen Sie oben links auf der Seite ein Logo hinzu. Das Bild wird vor allen anderen Texten platziert.
System::SharedPtr<Shape> shape = builder->InsertImage( u"Aspose Logo.png", RelativeHorizontalPosition::Page, 60.0, RelativeVerticalPosition::Page, 60.0, -1.0, -1.0, WrapType::None);
doc->Save(u"document_with_image.docx");

Tabellen in Word Dokumente mit C++ einfügen

Die Tabelle ist ein wichtiges Element der Word Dokumente, um die Daten in Form von Zeilen und Spalten zu halten. Führen Sie die folgenden Schritte aus, um eine Tabelle in den Word Dokumenten zu erstellen.

  • Erstellen Sie ein neues Word Dokument mit der Klasse Document.
  • Erstellen Sie ein Objekt der Klasse Table.
  • Fügen Sie die Tabelle mit der methode Document->getFirstSection()->getBody()->AppendChild() in das Dokument ein.
  • Erstellen Sie eine neue Zeile mit der Klasse Row.
  • Zeile mit der methode Table->AppendChild(row) in die Tabelle einfügen.
  • Erstellen Sie eine neue Cell und fügen Sie Text mit der methode Cell->getFirstParagraph()->AppendChild() ein.
  • Fügen Sie die Zelle mit der methode Row->AppendChild() in die Zeile ein.
  • Wiederholen Sie den Vorgang zum Hinzufügen mehrerer Zeilen.
  • Speichern Sie das Dokument mit der methode Document->Save().

Das folgende Codebeispiel zeigt, wie Sie mit C++ eine Tabelle in ein Word Dokument einfügen.

System::SharedPtr<Document> doc = System::MakeObject<Document>(); 
System::SharedPtr<Table> table = System::MakeObject<Table>(doc);
// Fügen Sie die Tabelle dem Dokument hinzu.
doc->get_FirstSection()->get_Body()->AppendChild(table); 
System::SharedPtr<Row> row = System::MakeObject<Row>(doc);
row->get_RowFormat()->set_AllowBreakAcrossPages(true);
table->AppendChild(row);
// Wir können jetzt alle Auto-Fit-Einstellungen anwenden.
table->AutoFit(AutoFitBehavior::FixedColumnWidths);
// Erstellen Sie eine Zelle und fügen Sie sie der Zeile hinzu
System::SharedPtr<Cell> cell = System::MakeObject<Cell>(doc);
cell->get_CellFormat()->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_LightBlue());
cell->get_CellFormat()->set_Width(80);
// Fügen Sie der Zelle einen Absatz sowie einen neuen Lauf mit etwas Text hinzu.
cell->AppendChild(System::MakeObject<Paragraph>(doc));
cell->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 1 Text"));
// Fügen Sie die Zelle der Zeile hinzu.
row->AppendChild(cell);
// Wir würden dann den Vorgang für die anderen Zellen und Zeilen in der Tabelle wiederholen.
// Wir können die Dinge auch beschleunigen, indem wir vorhandene Zellen und Zeilen klonen.
row->AppendChild((System::StaticCast<Node>(cell))->Clone(false));
row->get_LastCell()->AppendChild(System::MakeObject<Paragraph>(doc));
row->get_LastCell()->get_FirstParagraph()->AppendChild(System::MakeObject<Run>(doc, u"Row 1, Cell 2 Text"));
// Speichern Sie das Dokument auf der Festplatte.
doc->Save(u"document_with_table.docx");

Fügen Sie Listen in Word Dokumenten mit C++ hinzu

Zu guter Letzt das Erstellen einer Liste in den Word Dokumenten. Im Folgenden sind die Schritte zum Erstellen einer Aufzählung aufgeführt.

  • Erstellen Sie ein neues Word Dokument oder laden Sie ein vorhandenes mit der Klasse Document.
  • Definieren Sie ein neues DocumentBuilder objekt und initialisieren Sie es mit dem Document objekt.
  • Erstellen Sie eine Liste mit der methode DocumentBuilder->getListFormat()->setList(Document->getLists()->Add(ListTemplate::NumberArabicDot)).
  • Füllen Sie die Liste aus und legen Sie die Listenebene fest.
  • Speichern Sie das Dokument als Datei.

Das folgende Codebeispiel zeigt, wie Sie mit C++ eine Liste in einem Word Dokument erstellen.

System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Erstellen Sie eine nummerierte Liste basierend auf einer der Microsoft Word-Listenvorlagen und
// Wenden Sie es auf den aktuellen Absatz im Document Builder an.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::NumberArabicDot));
// Es gibt 9 Levels in dieser Liste, probieren wir sie alle aus.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Erstellen Sie eine Liste mit Aufzählungszeichen basierend auf einer der Microsoft Word-Listenvorlagen
// and Wenden Sie es auf den aktuellen Absatz im Document Builder an.
builder->get_ListFormat()->set_List(doc->get_Lists()->Add(ListTemplate::BulletDiamonds));
// Es gibt 9 Levels in dieser Liste, probieren wir sie alle aus.
for (int32_t i = 0; i < 9; i++)
{
	builder->get_ListFormat()->set_ListLevelNumber(i);
	builder->Writeln(System::String(u"Level ") + i);
}
// Dies ist eine Möglichkeit, die Listenformatierung zu stoppen. 
builder->get_ListFormat()->set_List(nullptr); 
// Speichern Sie das Dokument auf der Festplatte.
builder->get_Document()->Save(u"document_with_list.docx");

Fazit

In diesem Artikel haben Sie gesehen, wie Sie MS Word Dokumente mit C++ von Grund auf neu erstellen. Außerdem haben Sie gelernt, wie Sie Elemente wie Texte, Bilder, Tabellen und Listen in neue oder bestehende Word Dokumente einfügen. Weitere Informationen zu den erweiterten Funktionen der API finden Sie in der Dokumentation.

Siehe auch