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
- Aggiungi commenti ai documenti di Word usando C++
- Leggi i commenti da un documento di Word
- Modifica i commenti in un documento di Word usando C++
- Elimina i commenti da un documento di Word utilizzando 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.
- Innanzitutto, carica il documento di Word utilizzando la classe Document.
- Crea un’istanza della classe DocumentBuilder passando l’oggetto Document creato nel passaggio precedente.
- Crea il commento usando la classe Commento.
- Aggiungi il commento al documento usando DocumentBuilder->getCurrentParagraph()->AppendChild(System::SharedPtrAspose::Words::Node newChild).
- Infine, salva il documento usando il metodo Document->Save(System::String fileName).
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.
Leggi i commenti da un documento di Word
Di seguito sono riportati i passaggi per leggere i commenti dai documenti di Word.
- Carica il documento di Word usando la classe Document.
- Recupera i commenti utilizzando il metodo Document->GetChildNodes(Aspose::Words::NodeType, bool isDeep).
- Scorri i commenti e recupera le informazioni dei singoli commenti.
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.
- Innanzitutto, carica il documento di Word utilizzando la classe Document.
- Recupera i commenti utilizzando il metodo Document->GetChildNodes(Aspose::Words::NodeType, bool isDeep).
- Ottieni il commento desiderato usando il metodo NodeCollection->idxget(int32t index) e inviando il risultato a Comment.
- Aggiorna il commento.
- Infine, salva il documento usando il metodo Document->Save(System::String fileName).
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.
- Carica il documento di Word usando la classe Document.
- Recupera i commenti utilizzando il metodo Document->GetChildNodes(Aspose::Words::NodeType, bool isDeep).
- Ottieni il commento che desideri eliminare utilizzando il metodo NodeCollection->idxget(int32t index) e inviando il risultato a Comment.
- Elimina il commento utilizzando il metodo Commento->Rimuovi().
- Salvare il documento utilizzando il metodo Document->Save(System::String fileName).
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.
- Innanzitutto, carica il documento di Word utilizzando la classe Document.
- Recupera i commenti utilizzando il metodo Document->GetChildNodes(Aspose::Words::NodeType, bool isDeep).
- Scorri i commenti.
- All’interno del ciclo, recupera il commento e confronta il suo autore. Se l’autore corrisponde, elimina il commento.
- Infine, salva il documento usando il metodo Document->Save(System::String fileName).
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.
- Carica il documento di Word usando la classe Document.
- Recupera i commenti utilizzando il metodo Document->GetChildNodes(Aspose::Words::NodeType, bool isDeep).
- Rimuovere tutti i commenti utilizzando il metodo NodeCollection->Clear().
- Infine, salva il documento usando il metodo Document->Save(System::String fileName).
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.