Lavorare con i commenti
Prova on-line
Puoi provare questa funzionalità con il nostro Rimozione online gratuita delle annotazioni.
Aspose.Words consente agli utenti di lavorare con i commenti: i commenti in un documento in Aspose.Words sono rappresentati dalla classe Comment. Utilizzare anche le classi CommentRangeStart e CommentRangeEnd per specificare l’area di testo da associare a un commento.
Aggiungi un commento
Aspose.Words ti consente di aggiungere commenti in diversi modi:
- Utilizzando la classe Comment
- Utilizzando le classi CommentRangeStart e CommentRangeEnd
L’esempio di codice seguente mostra come aggiungere un commento a un paragrafo utilizzando la classe Comment:
L’esempio di codice seguente mostra come aggiungere un commento a un paragrafo utilizzando un’area di testo e le classi CommentRangeStart e CommentRangeEnd:
Estrai o rimuovi commenti
L’utilizzo dei commenti in un documento Word (oltre alle revisioni) è una pratica comune durante la revisione dei documenti, in particolare quando sono presenti più revisori. Possono esserci situazioni in cui l’unica cosa di cui hai bisogno da un documento sono i commenti. Supponiamo che tu voglia generare un elenco dei risultati della revisione o forse che tu abbia raccolto tutte le informazioni utili dal documento e desideri semplicemente rimuovere i commenti non necessari. Potresti voler visualizzare o rimuovere i commenti di un particolare revisore.
In questo esempio esamineremo alcuni semplici metodi sia per raccogliere informazioni dai commenti all’interno di un documento sia per rimuovere commenti da un documento. Nello specifico tratteremo come:
- Estrarre tutti i commenti da un documento o solo quelli fatti da un particolare autore.
- Rimuovere tutti i commenti da un documento o solo da un particolare autore.
Come estrarre o rimuovere commenti
Il codice in questo esempio è in realtà piuttosto semplice e tutti i metodi si basano sullo stesso approccio. Un commento in un documento Word è rappresentato da un oggetto Comment nel modello a oggetti del documento Aspose.Words. Per raccogliere tutti i commenti in un documento utilizzare il metodo get_child_nodes con il primo parametro impostato su NodeType.COMMENT. Assicurati che il secondo parametro del metodo get_child_nodes sia impostato su true: questo forza il get_child_nodes a selezionare ricorsivamente da tutti i nodi figli, anziché raccogliere solo i figli immediati.
Per illustrare come estrarre e rimuovere commenti da un documento, eseguiremo i seguenti passaggi:
- Apri un documento Word utilizzando la classe Document
- Ottieni tutti i commenti dal documento in una raccolta
- Per estrarre i commenti:
- Esamina la raccolta utilizzando l’operatore foreach
- Estrai ed elenca il nome dell’autore, la data, l’ora e il testo di tutti i commenti
- Estrai ed elenca il nome dell’autore, la data e l’ora e il testo dei commenti scritti da un autore specifico, in questo caso l’autore ‘ks’
- Per rimuovere i commenti:
- Vai indietro nella raccolta utilizzando l’operatore for
- Rimuovi i commenti
- Salva le modifiche
Come estrarre tutti i commenti
Il metodo get_child_nodes è molto utile e puoi usarlo ogni volta che hai bisogno di ottenere un elenco di nodi di documenti di qualsiasi tipo. La raccolta risultante non crea un sovraccarico immediato poiché i nodi vengono selezionati in questa raccolta solo quando si enumerano o si accedono agli elementi al suo interno.
Il seguente esempio di codice mostra come estrarre il nome dell’autore, la data e l’ora e il testo di tutti i commenti nel documento:
Come estrarre i commenti di un autore specifico
Dopo aver selezionato i nodi Comment in una raccolta, tutto ciò che devi fare è estrarre le informazioni di cui hai bisogno. In questo esempio, le iniziali dell’autore, la data, l’ora e il testo semplice del commento sono combinati in un’unica stringa; potresti invece scegliere di memorizzarlo in altri modi.
Il metodo sovraccaricato che estrae i commenti da un particolare autore è quasi lo stesso, controlla semplicemente il nome dell’autore prima di aggiungere le informazioni nell’array.
Il seguente esempio di codice mostra come estrarre il nome dell’autore, la data e l’ora e il testo dei commenti dell’autore specificato:
Come rimuovere i commenti
Se stai rimuovendo tutti i commenti, non è necessario spostarti nella raccolta eliminando i commenti uno per uno; puoi rimuoverli chiamando clear nella raccolta dei commenti.
L’esempio di codice seguente mostra come rimuovere tutti i commenti nel documento:
Quando è necessario rimuovere selettivamente i commenti, il processo diventa più simile al codice che abbiamo utilizzato per l’estrazione dei commenti.
Il seguente esempio di codice mostra come rimuovere i commenti dell’autore specificato:
Il punto principale da evidenziare qui è l’uso dell’operatore for. A differenza della semplice estrazione, qui si desidera eliminare un commento. Un trucco adatto è ripetere la raccolta all’indietro dall’ultimo Comment al primo. Il motivo di ciò se inizi dalla fine e ti sposti all’indietro, l’indice degli elementi precedenti rimane invariato e puoi tornare al primo elemento della raccolta.
Il seguente esempio di codice mostra i metodi per l’estrazione e la rimozione dei commenti:
Come rimuovere un commento tra CommentRangeStart e CommentRangeEnd
Utilizzando Aspose.Words puoi anche rimuovere i commenti tra i nodi CommentRangeStart e CommentRangeEnd.
L’esempio di codice seguente mostra come rimuovere il testo tra CommentRangeStart e CommentRangeEnd:
# Open the document.
doc = aw.Document(docs_base.my_dir + "Comments.docx")
commentStart = doc.get_child(aw.NodeType.COMMENT_RANGE_START, 0, True).as_comment_range_start()
commentEnd = doc.get_child(aw.NodeType.COMMENT_RANGE_END, 0, True).as_comment_range_end()
currentNode = commentStart
isRemoving = True
while (currentNode != None and isRemoving) :
if (currentNode.node_type == aw.NodeType.COMMENT_RANGE_END) :
isRemoving = False
nextNode = currentNode.next_pre_order(doc)
currentNode.remove()
currentNode = nextNode
# Save the document.
doc.save(docs_base.artifacts_dir + "WorkingWithComments.remove_region_text.docx")
Aggiungi o rimuovi la risposta al commento
Il metodo add_reply aggiunge una risposta a questo commento. Tieni presente che, a causa delle limitazioni esistenti di Microsoft Office, nel documento è consentito solo 1 livello di risposte. Verrà sollevata un’eccezione di tipo InvalidOperationException se questo metodo viene chiamato sul commento Reply esistente.
Puoi utilizzare il metodo remove_reply per rimuovere la risposta specificata a questo commento.
L’esempio di codice seguente mostra come aggiungere una risposta al commento e rimuovere la risposta del commento:
Leggi la risposta del commento
La proprietà replies restituisce una raccolta di oggetti Comment che sono figli immediati del commento specificato.
L’esempio di codice seguente mostra come scorrere le risposte di un commento e risolverle: