Revisions
Revisions
Esta guía muestra cómo inspeccionar, aceptar, rechazar y registrar los cambios controlados en un documento de Word con Aspose.Words FOSS para .NET. Aspose.Words FOSS para .NET puede inspeccionar, aceptar y rechazar cambios controlados (revisiones) en un documento de Word a través de Document.Revisions, y puede registrar nuevos cambios controlados mientras se edita mediante Document.StartTrackRevisions()/StopTrackRevisions().
Lectura de cambios controlados
Document.Revisions devuelve un RevisionCollection de cada Revision en el documento; Range.Revisions limita lo mismo a un rango específico. Cada Revision informa quién realizó el cambio y cuándo (Author, DateTime), qué tipo de cambio es (RevisionType: Insertion, Deletion, FormatChange, StyleDefinitionChange o Moving), y dónde se aplica (ParentNode, ParentStyle). Document.HasRevisions le indica de antemano si un documento cargado tiene algún cambio controlado.
Aceptando y rechazando revisiones
Llame a Revision.Accept() o Revision.Reject() para resolver un único cambio controlado, o trabaje con toda la colección a la vez usando RevisionCollection.AcceptAll() / RejectAll(). Document.AcceptAllRevisions() es una conveniencia a nivel de documento que acepta todas las revisiones en una sola llamada. Para aceptar o rechazar un subconjunto de forma selectiva, implemente IRevisionCriteria.IsMatch(revision) y páselo a RevisionCollection.Accept(criteria) o Reject(criteria).
Grupos de revisiones
Las revisiones consecutivas del mismo autor y del mismo tipo se exponen juntas como un RevisionGroup — accesible mediante Revision.Group para una sola revisión, o RevisionCollection.Groups (un RevisionGroupCollection) para cada grupo en el documento. Cada grupo informa sus Text, Author y RevisionType combinados.
Grabando nuevos cambios rastreados
Llame a Document.StartTrackRevisions(author) o a la sobrecarga StartTrackRevisions(author, dateTime) antes de realizar ediciones para que los cambios posteriores se registren como revisiones en lugar de aplicarse directamente; llame a StopTrackRevisions() para finalizar el seguimiento. La propiedad Document.TrackRevisions refleja si el seguimiento está activo actualmente.
Visualizando contenido original vs. final
Document.RevisionsView controla si el documento se presenta en su estado Original o Final (un valor RevisionsView) cuando hay revisiones, sin alterar los datos subyacentes de la revisión.
Consejos y mejores prácticas
- Compruebe
Document.HasRevisionsantes de iterarDocument.Revisionspara evitar trabajo innecesario en documentos sin cambios rastreados. - Prefiera
RevisionCollection.Accept(criteria)/Reject(criteria)con unIRevisionCriteriapersonalizado en lugar de filtrar manualmente y llamar aRevision.Accept()uno por uno. RevisionGroupes útil para presentar un resumen legible de los cambios — agrupar revisiones consecutivas del mismo autor y del mismo tipo evita tratar cada carácter insertado como una entrada separada.- Siempre combina
StartTrackRevisions()con una llamada posterior aStopTrackRevisions()para que las ediciones no relacionadas no se registren como cambios controlados.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
Document.Revisions está vacío después de las ediciones | StartTrackRevisions() nunca se llamó antes de editar | Llame a StartTrackRevisions(author) antes de realizar las ediciones que desea rastrear |
RevisionCollection.Accept(criteria) no acepta nada | IRevisionCriteria.IsMatch() no coincide con ninguna revisión | Verifique la lógica de criterios contra los valores reales de Revision.Author/RevisionType/ParentNode primero |
El documento sigue mostrando marcas de cambios rastreados después de AcceptAllRevisions() | Ver estado, no datos de revisión | Establezca Document.RevisionsView a Final si necesita la vista de contenido resuelto |
FAQ
¿Cómo verifico si un documento tiene cambios controlados?
Lea Document.HasRevisions — es true si Document.Revisions contiene al menos un Revision.
¿Cuál es la diferencia entre Revision.Accept() y RevisionCollection.AcceptAll()?
Revision.Accept() resuelve una revisión específica; RevisionCollection.AcceptAll() (o Document.AcceptAllRevisions()) resuelve todas las revisiones de la colección de una vez.
¿Cómo acepto solo las revisiones realizadas por un autor específico?
Implemente IRevisionCriteria.IsMatch(revision) para comprobar revision.Author, luego llame a RevisionCollection.Accept(criteria) con esa implementación.
¿Cómo registro mis propias ediciones como cambios controlados?
Llame a Document.StartTrackRevisions(author) antes de hacer las ediciones, luego Document.StopTrackRevisions() cuando haya terminado.
¿Qué tipos de revisiones existen?
RevisionType define Insertion, Deletion, FormatChange, StyleDefinitionChange y Moving.
API Reference Resumen
| Clase / Método | Descripción |
|---|---|
Document.Revisions | RevisionCollection de todos los cambios rastreados en el documento |
Revision | Un cambio rastreado: Author, DateTime, RevisionType, Accept(), Reject() |
RevisionCollection | AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria), Groups |
RevisionGroup / RevisionGroupCollection | Revisiones consecutivas del mismo autor y del mismo tipo agrupadas |
IRevisionCriteria | Predicado personalizado (IsMatch(revision)) para aceptar/rechazar selectivamente |
Document.StartTrackRevisions() / StopTrackRevisions() | Registrar nuevas ediciones como cambios rastreados |
Document.RevisionsView | Presentación Original o Final del contenido revisado |