Revisions
Revisions
Este guia mostra como inspecionar, aceitar, rejeitar e registrar alterações controladas em um documento Word com Aspose.Words FOSS para .NET. Aspose.Words FOSS para .NET pode inspecionar, aceitar e rejeitar alterações controladas (revisões) em um documento Word através de Document.Revisions, e pode registrar novas alterações controladas ao editar via Document.StartTrackRevisions()/StopTrackRevisions().
Lendo Alterações Controladas
Document.Revisions retorna um RevisionCollection de cada Revision no documento; Range.Revisions limita o mesmo a um intervalo específico. Cada Revision relata quem fez a alteração e quando (Author, DateTime), que tipo de alteração é (RevisionType: Insertion, Deletion, FormatChange, StyleDefinitionChange ou Moving), e onde ela se aplica (ParentNode, ParentStyle). Document.HasRevisions informa antecipadamente se um documento carregado possui alterações controladas.
Aceitando e Rejeitando Revisões
Chame Revision.Accept() ou Revision.Reject() para resolver uma única alteração controlada, ou trabalhe em toda a coleção de uma vez com RevisionCollection.AcceptAll() / RejectAll(). Document.AcceptAllRevisions() é uma conveniência ao nível do documento que aceita todas as revisões em uma única chamada. Para aceitar ou rejeitar um subconjunto seletivamente, implemente IRevisionCriteria.IsMatch(revision) e passe-o para RevisionCollection.Accept(criteria) ou Reject(criteria).
Grupos de Revisão
Revisões consecutivas do mesmo autor e do mesmo tipo são expostas juntas como um RevisionGroup — acessível via Revision.Group para uma única revisão, ou RevisionCollection.Groups (um RevisionGroupCollection) para cada grupo no documento. Cada grupo relata seu Text, Author e RevisionType combinados.
Gravando Novas Alterações Rastreadas
Chame Document.StartTrackRevisions(author) ou a sobrecarga StartTrackRevisions(author, dateTime) antes de fazer edições para que as alterações subsequentes sejam registradas como revisões em vez de aplicadas diretamente; chame StopTrackRevisions() para encerrar o rastreamento. A propriedade Document.TrackRevisions indica se o rastreamento está atualmente ativo.
Visualizando Conteúdo Original vs. Final
Document.RevisionsView controla se o documento é apresentado em seu estado Original ou Final (um valor RevisionsView) quando há revisões, sem alterar os dados subjacentes das revisões.
Dicas e Melhores Práticas
- Verifique
Document.HasRevisionsantes de iterarDocument.Revisionspara evitar trabalho desnecessário em documentos sem alterações rastreadas. - Prefira
RevisionCollection.Accept(criteria)/Reject(criteria)com umIRevisionCriteriapersonalizado em vez de filtrar manualmente e chamarRevision.Accept()um de cada vez. RevisionGroupé útil para apresentar um resumo legível das alterações — agrupar revisões consecutivas do mesmo autor e do mesmo tipo evita tratar cada caractere inserido como uma entrada separada.- Sempre combine
StartTrackRevisions()com uma chamada posterior deStopTrackRevisions()para que edições não relacionadas não sejam registradas como alterações rastreadas.
Problemas comuns
| Problema | Causa | Correção |
|---|---|---|
Document.Revisions está vazio após edições | StartTrackRevisions() nunca foi chamado antes da edição | Chame StartTrackRevisions(author) antes de fazer as edições que deseja rastrear |
RevisionCollection.Accept(criteria) não aceita nada | IRevisionCriteria.IsMatch() não corresponde a nenhuma revisão | Verifique a lógica dos critérios em relação aos valores reais Revision.Author/RevisionType/ParentNode primeiro |
O documento ainda mostra marcação de alterações rastreadas após AcceptAllRevisions() | Visualizar estado, não dados de revisão | Defina Document.RevisionsView como Final se precisar da visualização de conteúdo resolvido |
FAQ
Como verifico se um documento tem alterações rastreadas?
Leia Document.HasRevisions — é true se Document.Revisions contiver ao menos um Revision.
Qual a diferença entre Revision.Accept() e RevisionCollection.AcceptAll()?
Revision.Accept() resolve uma revisão específica; RevisionCollection.AcceptAll() (ou Document.AcceptAllRevisions()) resolve todas as revisões da coleção de uma vez.
Como aceito apenas revisões feitas por um autor específico?
Implemente IRevisionCriteria.IsMatch(revision) para verificar revision.Author, então chame RevisionCollection.Accept(criteria) com essa implementação.
Como registro minhas próprias edições como alterações rastreadas?
Chame Document.StartTrackRevisions(author) antes de fazer as edições, então Document.StopTrackRevisions() quando terminar.
Quais tipos de revisão existem?
RevisionType define Insertion, Deletion, FormatChange, StyleDefinitionChange e Moving.
API Reference Resumo
| Classe / Método | Descrição |
|---|---|
Document.Revisions | RevisionCollection de todas as alterações rastreadas no documento |
Revision | Uma alteração rastreada: Author, DateTime, RevisionType, Accept(), Reject() |
RevisionCollection | AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria), Groups |
RevisionGroup / RevisionGroupCollection | Revisões consecutivas do mesmo autor, do mesmo tipo agrupadas juntas |
IRevisionCriteria | Predicado personalizado (IsMatch(revision)) para aceitação/rejeição seletiva |
Document.StartTrackRevisions() / StopTrackRevisions() | Registre novas edições como alterações controladas |
Document.RevisionsView | Original ou Final apresentação de conteúdo revisado |