Microsoft Word vous offre la possibilité d’ajouter des commentaires aux documents Word. Les commentaires peuvent être utiles dans des cas tels que la suggestion d’améliorations dans des documents ou le partage d’idées sur le texte. Il peut y avoir des situations où vous devez gérer les commentaires par programmation. À cette fin, cet article vous apprendra à utiliser des commentaires dans des documents Word à l’aide de C++.

API C++ pour travailler avec des commentaires dans des documents Word

Aspose.Words for C++ est une bibliothèque C++ native qui vous permet de créer, lire, modifier et convertir des documents Microsoft Word. En outre, il prend également en charge le travail avec des commentaires dans les fichiers DOCX et DOC. Vous pouvez soit installer l’API via NuGet ou la télécharger directement à partir de la section Téléchargements.

PM> Install-Package Aspose.Words.Cpp

Ajouter des commentaires aux documents Word à l’aide de C++

L’API Aspose.Words for C++ offre la possibilité d’ajouter des commentaires avec le nom de l’auteur, les initiales et la date/heure. Voici les étapes pour ajouter des commentaires aux documents Word.

L’exemple de code suivant montre comment ajouter des commentaires à des documents Word à l’aide de C++.

// Chemins de répertoire.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Charger le fichier Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");

// Créer une instance de la classe DocumentBuilder
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// Ajouter un commentaire
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."));

// Enregistrez le document.
doc->Save(outputDataDir + u"AddCommentsToExistingDoc.docx");

Voici l’image de la sortie générée par l’exemple de code.

Image de la sortie générée par l'exemple de code

Lire les commentaires d’un document Word

Voici les étapes pour lire les commentaires des documents Word.

Voici l’exemple de code permettant de lire les commentaires d’un document Word à l’aide de C++.

// Chemins de répertoire.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Charger le fichier Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Récupérer les commentaires
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Parcourez tous les commentaires
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
	// Imprimer les informations sur les commentaires
	std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}

Modifier les commentaires dans un document Word à l’aide de C++

Pour modifier un commentaire, récupérez-le à l’aide de la méthode NodeCollection->idxget(int32t index) et modifiez-le selon vos besoins. Voici les étapes pour modifier les commentaires dans un document Word.

L’exemple de code suivant montre comment modifier des commentaires dans un document Word à l’aide de C++.

// Chemins de répertoire.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Charger le fichier Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Récupérer les commentaires
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Obtenir un commentaire
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(0));

// Mettre à jour le texte du commentaire
comment->SetText(u"Updated Text");

// Enregistrez le document.
doc->Save(outputDataDir + u"UpdatedComment.docx");

Supprimer les commentaires d’un document Word à l’aide de C++

L’API Aspose.Words for C++ offre plusieurs façons de supprimer des commentaires de documents Word. Dans cette section, vous apprendrez à supprimer un commentaire spécifique, les commentaires par auteur et tous les commentaires à l’aide de C++.

Supprimer un commentaire spécifique

Voici les étapes pour supprimer un commentaire spécifique.

L’exemple de code suivant montre comment supprimer un commentaire spécifique d’un document Word à l’aide de C++.

// Chemins de répertoire.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";

// Charger le fichier Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Récupérer les commentaires
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Obtenir un commentaire
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(2));

// Supprimer le commentaire
comment->Remove();

// Enregistrez le document.
doc->Save(outputDataDir + u"DeleteSpecificComments.docx");

Suppression de commentaires par auteur

Voici les étapes pour supprimer les commentaires par auteur.

Voici un exemple de code pour supprimer les commentaires par auteur à l’aide de C++.

// Chemins de répertoire.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Charger le fichier Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Récupérer les commentaires
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Parcourez tous les commentaires et supprimez ceux écrits par l'auteur "Aspose".
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();
	}
}

// Enregistrez le document.
doc->Save(outputDataDir + u"DeleteCommentsByAuthor.docx");

Supprimer tous les commentaires

Au lieu de supprimer des commentaires individuels, vous pouvez supprimer tous les commentaires à la fois en utilisant la méthode NodeCollection->Clear(). Voici les étapes pour supprimer tous les commentaires d’un document Word.

L’exemple de code suivant montre comment supprimer tous les commentaires d’un document Word à l’aide de C++.

// Chemins de répertoire.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Charger le fichier Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Récupérer les commentaires
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Supprimer tous les commentaires.
comments->Clear();

// Enregistrez le document.
doc->Save(outputDataDir + u"DeleteAllComments.docx");

Obtenez une licence gratuite

Vous pouvez essayer l’API sans limites d’évaluation en demandant une licence temporaire gratuite.

Conclusion

Dans cet article, vous avez appris à utiliser des commentaires dans des documents Word à l’aide de C++. Plus précisément, vous avez appris à ajouter, lire, modifier et supprimer des commentaires. De plus, vous avez vu comment supprimer un commentaire spécifique, les commentaires par auteur et tous les commentaires à l’aide de Aspose.Words for C++. L’API fournit un grand nombre de fonctionnalités supplémentaires pour automatiser vos tâches liées à Word. Vous pouvez explorer l’API en détail en visitant la documentation officielle. En cas de questions, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.

Voir également