Microsoft Word bietet Ihnen die Möglichkeit, Kommentare zu Word Dokumenten hinzuzufügen. Kommentare können hilfreich sein, wenn Sie beispielsweise Verbesserungen in Dokumenten vorschlagen oder Gedanken zum Text teilen. Es kann Situationen geben, in denen Sie Kommentare programmgesteuert verwalten müssen. Zu diesem Zweck lernen Sie in diesem Artikel, wie Sie in C++ mit Kommentaren in Word Dokumenten arbeiten.
- C++-API zum Arbeiten mit Kommentaren in Word Dokumenten
- Fügen Sie mit C++ Kommentare zu Word Dokumenten hinzu
- Lesen Sie Kommentare aus einem Word Dokument
- Kommentare in einem Word Dokument mit C++ ändern
- Löschen Sie Kommentare aus einem Word Dokument mit C++
C++-API zum Arbeiten mit Kommentaren in Word Dokumenten
Aspose.Words for C++ ist eine native C++ Bibliothek, mit der Sie Microsoft Word Dokumente erstellen, lesen, ändern und konvertieren können. Darüber hinaus unterstützt es auch das Arbeiten mit Kommentaren in DOCX und DOC Dateien. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt Downloads herunterladen.
PM> Install-Package Aspose.Words.Cpp
Fügen Sie mit C++ Kommentare zu Word Dokumenten hinzu
Aspose.Words for C++ API bietet die Möglichkeit, Kommentare mit dem Namen des Autors, Initialen und Datum/Uhrzeit hinzuzufügen. Im Folgenden finden Sie die Schritte zum Hinzufügen von Kommentaren zu Word Dokumenten.
- Laden Sie zunächst das Word Dokument mit der Klasse Document.
- Erstellen Sie eine Instanz der DocumentBuilder Klasse, indem Sie das im vorherigen Schritt erstellte Document objekt übergeben.
- Erstellen Sie den Kommentar mit der Klasse Comment.
- Fügen Sie den Kommentar zum Dokument hinzu, indem Sie DocumentBuilder->getCurrentParagraph()->AppendChild(System::SharedPtrAspose::Words::Node newChild) methode.
- Speichern Sie das Dokument abschließend mit der methode Dokument->Speichern(System::String Dateiname).
Der folgende Beispielcode demonstriert das Hinzufügen von Kommentaren zu Word Dokumenten mit C++.
// Verzeichnispfade.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Laden Sie die Word Datei
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");
// Erstellen Sie eine Instanz der DocumentBuilder Klasse
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Einen Kommentar hinzufügen
System::SharedPtr<Comment> comment = System::MakeObject<Comment>(doc, u"Aspose", u"AFFA", System::DateTime::get_Today());
builder->get_CurrentParagraph()->AppendChild(comment);
comment->get_Paragraphs()->Add(System::MakeObject<Paragraph>(doc));
comment->get_FirstParagraph()->get_Runs()->Add(System::MakeObject<Run>(doc, u"Comment text."));
// Speichern Sie das Dokument.
doc->Save(outputDataDir + u"AddCommentsToExistingDoc.docx");
Das Folgende ist das Bild der vom Beispielcode generierten Ausgabe.
Lesen Sie Kommentare aus einem Word Dokument
Im Folgenden finden Sie die Schritte zum Lesen von Kommentaren aus Word Dokumenten.
- Laden Sie das Word Dokument mit der Klasse Document.
- Rufen Sie die Kommentare mit der methode Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep) ab.
- Durchlaufen Sie die Kommentare und rufen Sie die Informationen einzelner Kommentare ab.
Im Folgenden finden Sie den Beispielcode zum Lesen von Kommentaren aus einem Word Dokument mit C++.
// Verzeichnispfade.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Laden Sie die Word Datei
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Kommentare abrufen
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Durchlaufen Sie alle Kommentare
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
// Kommentarinformationen drucken
std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}
Kommentare in einem Word Dokument mit C++ ändern
Um einen Kommentar zu ändern, rufen Sie ihn mit der methode NodeCollection->idxget(int32t index) ab und ändern Sie ihn nach Ihren Bedürfnissen. Im Folgenden sind die Schritte zum Ändern von Kommentaren in einem Word Dokument aufgeführt.
- Laden Sie zunächst das Word Dokument mit der Klasse Document.
- Rufen Sie die Kommentare mit der methode Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep) ab.
- Rufen Sie den gewünschten Kommentar mit der methode NodeCollection->idxget(int32t index) ab und wandeln Sie das Ergebnis in Comment um.
- Aktualisieren Sie den Kommentar.
- Speichern Sie abschließend das Dokument mit der methode Dokument->Speichern(System::String Dateiname).
Der folgende Beispielcode zeigt, wie Kommentare in einem Word Dokument mit C++ geändert werden.
// Verzeichnispfade.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Laden Sie die Word Datei
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Kommentare abrufen
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Kommentar erhalten
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(0));
// Kommentartext aktualisieren
comment->SetText(u"Updated Text");
// Speichern Sie das Dokument.
doc->Save(outputDataDir + u"UpdatedComment.docx");
Löschen Sie Kommentare aus einem Word Dokument mit C++
Die Aspose.Words for C++ API bietet mehrere Möglichkeiten zum Löschen von Kommentaren aus Word Dokumenten. In diesem Abschnitt erfahren Sie, wie Sie einen bestimmten Kommentar, Kommentare des Autors und alle Kommentare mit C++ löschen.
Einen bestimmten Kommentar löschen
Im Folgenden sind die Schritte zum Löschen eines bestimmten Kommentars aufgeführt.
- Laden Sie das Word Dokument mit der Klasse Document.
- Rufen Sie die Kommentare mit der methode Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep) ab.
- Rufen Sie den zu löschenden Kommentar mit der methode NodeCollection->idxget(int32t index) ab und wandeln Sie das Ergebnis in Comment um.
- Löschen Sie den Kommentar mit der methode Comment->Remove().
- Speichern Sie das Dokument mit der methode Document->Save(System::String fileName).
Der folgende Beispielcode zeigt, wie Sie mit C++ einen bestimmten Kommentar aus einem Word Dokument löschen.
// Verzeichnispfade.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";
// Laden Sie die Word Datei
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Kommentare abrufen
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Kommentar erhalten
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(2));
// Kommentar entfernen
comment->Remove();
// Speichern Sie das Dokument.
doc->Save(outputDataDir + u"DeleteSpecificComments.docx");
Löschen von Kommentaren nach Autor
Im Folgenden sind die Schritte zum Löschen von Kommentaren nach Autor aufgeführt.
- Laden Sie zunächst das Word Dokument mit der Klasse Document.
- Rufen Sie die Kommentare mit der methode Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep) ab.
- Schleife die Kommentare durch.
- Rufen Sie innerhalb der Schleife den Kommentar ab und vergleichen Sie seinen Autor. Wenn der Autor übereinstimmt, löschen Sie den Kommentar.
- Speichern Sie das Dokument abschließend mit der methode Dokument->Speichern(System::String Dateiname).
Im Folgenden finden Sie den Beispielcode zum Löschen von Kommentaren nach Autor mithilfe von C++.
// Verzeichnispfade.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Laden Sie die Word Datei
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Kommentare abrufen
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Gehen Sie alle Kommentare durch und entfernen Sie diejenigen, die vom "Aspose"-Autor geschrieben wurden.
for (int32_t i = comments->get_Count() - 1; i >= 0; i--)
{
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(i));
if (comment->get_Author() == u"Aspose")
{
comment->Remove();
}
}
// Speichern Sie das Dokument.
doc->Save(outputDataDir + u"DeleteCommentsByAuthor.docx");
Alle Kommentare löschen
Anstatt einzelne Kommentare zu löschen, können Sie mit der methode NodeCollection->Clear() alle Kommentare auf einmal löschen. Im Folgenden finden Sie die Schritte zum Löschen aller Kommentare aus einem Word Dokument.
- Laden Sie das Word Dokument mit der Klasse Document.
- Rufen Sie die Kommentare mit der methode Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep) ab.
- Entfernen Sie alle Kommentare mit der methode NodeCollection->Clear().
- Speichern Sie das Dokument abschließend mit der methode Dokument->Speichern(System::String Dateiname).
Der folgende Beispielcode zeigt, wie alle Kommentare aus einem Word Dokument mit C++ gelöscht werden.
// Verzeichnispfade.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Laden Sie die Word Datei
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Kommentare abrufen
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Entfernen Sie alle Kommentare.
comments->Clear();
// Speichern Sie das Dokument.
doc->Save(outputDataDir + u"DeleteAllComments.docx");
Holen Sie sich eine kostenlose Lizenz
Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie in C++ mit Kommentaren in Word Dokumenten arbeiten. Insbesondere haben Sie gelernt, wie Sie Kommentare hinzufügen, lesen, bearbeiten und löschen. Außerdem haben Sie gesehen, wie Sie einen bestimmten Kommentar, Kommentare des Autors und alle Kommentare mit Aspose.Words für die C++-API löschen. Die API bietet eine Vielzahl zusätzlicher Funktionen zur Automatisierung Ihrer Word-bezogenen Aufgaben. Sie können die API im Detail erkunden, indem Sie die offizielle Dokumentation besuchen. Bei Fragen können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.