Microsoft Word ti offre la possibilità di aggiungere commenti ai documenti di Word. I commenti possono essere utili in casi come suggerire miglioramenti nei documenti o condividere pensieri sul testo. Potrebbero verificarsi situazioni in cui è necessario gestire i commenti a livello di codice. A tal fine, questo articolo ti insegnerà come lavorare con i commenti nei documenti di Word usando C++.

API C++ per lavorare con i commenti nei documenti di Word

Aspose.Words for C++ è una libreria C++ nativa che consente di creare, leggere, modificare e convertire documenti Microsoft Word. Inoltre, supporta anche l’utilizzo dei commenti nei file DOCX e DOC. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione Download.

PM> Install-Package Aspose.Words.Cpp

Aggiungi commenti ai documenti di Word usando C++

L’API Aspose.Words per C++ offre la possibilità di aggiungere commenti con il nome dell’autore, le iniziali e la data/ora. Di seguito sono riportati i passaggi per aggiungere commenti ai documenti di Word.

Il codice di esempio seguente illustra come aggiungere commenti ai documenti di Word utilizzando C++.

// Percorsi di directory.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Carica il file di Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");

// Crea un'istanza della classe DocumentBuilder
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// Aggiungi un commento
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."));

// Salva il documento.
doc->Save(outputDataDir + u"AddCommentsToExistingDoc.docx");

Quella che segue è l’immagine dell’output generato dal codice di esempio.

Immagine dell'output generato dal codice di esempio

Leggi i commenti da un documento di Word

Di seguito sono riportati i passaggi per leggere i commenti dai documenti di Word.

Di seguito è riportato il codice di esempio per leggere i commenti da un documento di Word utilizzando C++.

// Percorsi di directory.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Carica il file di Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Recupera commenti
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Scorri tutti i commenti
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
	// Stampa le informazioni sui commenti
	std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}

Modifica i commenti in un documento di Word usando C++

Per modificare un commento, recuperalo utilizzando il metodo NodeCollection->idxget(int32t index) e modificalo in base alle tue esigenze. Di seguito sono riportati i passaggi per modificare i commenti in un documento di Word.

Il codice di esempio seguente mostra come modificare i commenti in un documento di Word usando C++.

// Percorsi di directory.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Carica il file di Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Recupera commenti
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

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

// Aggiorna il testo del commento
comment->SetText(u"Updated Text");

// Salva il documento.
doc->Save(outputDataDir + u"UpdatedComment.docx");

Elimina i commenti da un documento di Word utilizzando C++

L’API Aspose.Words per C++ offre diversi modi per eliminare i commenti dai documenti di Word. In questa sezione imparerai come eliminare un commento specifico, i commenti per autore e tutti i commenti usando C++.

Elimina un commento specifico

Di seguito sono riportati i passaggi per eliminare un commento specifico.

Il codice di esempio seguente mostra come eliminare un commento specifico da un documento di Word usando C++.

// Percorsi di directory.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";

// Carica il file di Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Recupera commenti
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

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

// Rimuovi commento
comment->Remove();

// Salva il documento.
doc->Save(outputDataDir + u"DeleteSpecificComments.docx");

Eliminazione dei commenti per autore

Di seguito sono riportati i passaggi per eliminare i commenti per autore.

Di seguito è riportato il codice di esempio per eliminare i commenti per autore utilizzando C++.

// Percorsi di directory.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Carica il file di Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Recupera commenti
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Scorri tutti i commenti e rimuovi quelli scritti dall'autore di "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();
	}
}

// Salva il documento.
doc->Save(outputDataDir + u"DeleteCommentsByAuthor.docx");

Elimina tutti i commenti

Invece di eliminare i singoli commenti, puoi eliminare tutti i commenti contemporaneamente utilizzando il metodo NodeCollection->Clear(). Di seguito sono riportati i passaggi per eliminare tutti i commenti da un documento di Word.

Il codice di esempio seguente illustra come eliminare tutti i commenti da un documento di Word utilizzando C++.

// Percorsi di directory.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Carica il file di Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Recupera commenti
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Rimuovi tutti i commenti.
comments->Clear();

// Salva il documento.
doc->Save(outputDataDir + u"DeleteAllComments.docx");

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo hai imparato come lavorare con i commenti nei documenti di Word usando C++. In particolare, hai imparato come aggiungere, leggere, modificare ed eliminare commenti. Inoltre, hai visto come eliminare un commento specifico, i commenti per autore e tutti i commenti usando Aspose.Words per l’API C++. L’API fornisce un vasto numero di funzionalità aggiuntive per automatizzare le attività relative a Word. Puoi esplorare l’API in dettaglio visitando la documentazione ufficiale. In caso di domande, non esitare a contattarci sul nostro forum di supporto gratuito.

Guarda anche