Revisions
Revisions
Questa guida mostra come esaminare, accettare, rifiutare e registrare le modifiche tracciate in un documento Word con Aspose.Words FOSS per .NET. Aspose.Words FOSS per .NET può esaminare, accettare e rifiutare le modifiche tracciate (revisioni) in un documento Word tramite Document.Revisions, e può registrare nuove modifiche tracciate durante la modifica via Document.StartTrackRevisions()/StopTrackRevisions().
Lettura delle modifiche tracciate
Document.Revisions restituisce un RevisionCollection di ogni Revision nel documento; Range.Revisions limita lo stesso a un intervallo specifico. Ogni Revision riporta chi ha effettuato la modifica e quando (Author, DateTime), che tipo di modifica è (RevisionType: Insertion, Deletion, FormatChange, StyleDefinitionChange o Moving), e dove si applica (ParentNode, ParentStyle). Document.HasRevisions ti indica subito se un documento caricato contiene modifiche tracciate.
Accettare e rifiutare le revisioni
Chiama Revision.Accept() o Revision.Reject() per risolvere una singola modifica tracciata, oppure lavora sull’intera collezione in una volta con RevisionCollection.AcceptAll() / RejectAll(). Document.AcceptAllRevisions() è una comodità a livello di documento che accetta tutte le revisioni in una sola chiamata. Per accettare o rifiutare un sottoinsieme in modo selettivo, implementa IRevisionCriteria.IsMatch(revision) e passalo a RevisionCollection.Accept(criteria) o Reject(criteria).
Gruppi di revisioni
Le revisioni consecutive dallo stesso autore e dello stesso tipo sono esposte insieme come un RevisionGroup — accessibile tramite Revision.Group per una singola revisione, o RevisionCollection.Groups (un RevisionGroupCollection) per ogni gruppo nel documento. Ogni gruppo riporta il suo Text, Author e RevisionType combinati.
Registrazione di nuove modifiche tracciate
Chiama Document.StartTrackRevisions(author) o il sovraccarico StartTrackRevisions(author, dateTime) prima di apportare modifiche in modo che le modifiche successive vengano registrate come revisioni anziché applicate direttamente; chiama StopTrackRevisions() per terminare il tracciamento. La proprietà Document.TrackRevisions indica se il tracciamento è attualmente attivo.
Visualizzazione del contenuto originale vs. finale
Document.RevisionsView controlla se il documento viene presentato nel suo stato Original o Final (un valore RevisionsView) quando sono presenti revisioni, senza modificare i dati di revisione sottostanti.
Suggerimenti e migliori pratiche
- Verifica
Document.HasRevisionsprima di iterareDocument.Revisionsper evitare lavoro inutile su documenti senza modifiche tracciate. - Preferisci
RevisionCollection.Accept(criteria)/Reject(criteria)con unIRevisionCriteriapersonalizzato rispetto al filtrare manualmente e chiamareRevision.Accept()uno alla volta. RevisionGroupè utile per presentare un riepilogo leggibile delle modifiche — raggruppare revisioni consecutive dallo stesso autore e dello stesso tipo evita di trattare ogni carattere inserito come voce separata.- Associa sempre
StartTrackRevisions()a una successiva chiamataStopTrackRevisions()in modo che le modifiche non correlate non vengano registrate come modifiche monitorate.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
Document.Revisions è vuoto dopo le modifiche | StartTrackRevisions() non è mai stato chiamato prima della modifica | Chiama StartTrackRevisions(author) prima di apportare le modifiche che vuoi tracciare |
RevisionCollection.Accept(criteria) non accetta nulla | IRevisionCriteria.IsMatch() non corrisponde a nessuna revisione | Verifica la logica dei criteri rispetto ai valori reali Revision.Author/RevisionType/ParentNode prima |
Il documento mostra ancora il markup delle modifiche tracciate dopo AcceptAllRevisions() | Visualizza lo stato, non i dati di revisione | Imposta Document.RevisionsView a Final se ti serve la visualizzazione del contenuto risolto |
FAQ
Come posso verificare se un documento contiene modifiche monitorate?
Leggi Document.HasRevisions — è true se Document.Revisions contiene almeno un Revision.
Qual è la differenza tra Revision.Accept() e RevisionCollection.AcceptAll()?
Revision.Accept() risolve una revisione specifica; RevisionCollection.AcceptAll() (o Document.AcceptAllRevisions()) risolve tutte le revisioni nella collezione in una volta.
Come faccio ad accettare solo le revisioni effettuate da un autore specifico?
Implementa IRevisionCriteria.IsMatch(revision) per verificare revision.Author, poi chiama RevisionCollection.Accept(criteria) con quell’implementazione.
Come registro le mie modifiche come modifiche tracciate?
Chiama Document.StartTrackRevisions(author) prima di apportare le modifiche, poi Document.StopTrackRevisions() al termine.
Quali tipi di revisione esistono?
RevisionType definisce Insertion, Deletion, FormatChange, StyleDefinitionChange e Moving.
API Reference Riepilogo
| Classe / Metodo | Descrizione |
|---|---|
Document.Revisions | RevisionCollection di tutte le modifiche tracciate nel documento |
Revision | Una modifica monitorata: Author, DateTime, RevisionType, Accept(), Reject() |
RevisionCollection | AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria), Groups |
RevisionGroup / RevisionGroupCollection | Revisioni consecutive dallo stesso autore e dello stesso tipo raggruppate insieme |
IRevisionCriteria | Predicato personalizzato (IsMatch(revision)) per accettare/rifiutare selettivamente |
Document.StartTrackRevisions() / StopTrackRevisions() | Registra le nuove modifiche come modifiche tracciate |
Document.RevisionsView | Original o Final presentazione del contenuto revisionato |