Revisions
Revisions
У цьому керівництві показано, як переглядати, приймати, відхиляти та фіксувати відстежувані зміни у документі Word за допомогою Aspose.Words FOSS для .NET. Aspose.Words FOSS для .NET може переглядати, приймати та відхиляти відстежувані зміни (редакції) у документі Word через Document.Revisions і може фіксувати нові відстежувані зміни під час редагування за допомогою Document.StartTrackRevisions()/StopTrackRevisions().
Читання відстежуваних змін
Document.Revisions повертає RevisionCollection кожного Revision у документі; Range.Revisions обмежує те саме конкретним діапазоном. Кожен Revision повідомляє, хто здійснив зміну і коли (Author, DateTime), який тип зміни це (RevisionType: Insertion, Deletion, FormatChange, StyleDefinitionChange або Moving), і де вона застосовується (ParentNode, ParentStyle). Document.HasRevisions повідомляє заздалегідь, чи має завантажений документ взагалі відстежувані зміни.
Приймання та відхилення редакцій
Викличте Revision.Accept() або Revision.Reject(), щоб вирішити одну відстежувану зміну, або працюйте з усією колекцією одразу за допомогою RevisionCollection.AcceptAll() / RejectAll(). Document.AcceptAllRevisions() — це зручність на рівні документа, яка приймає кожну редакцію одним викликом. Щоб вибірково приймати або відхиляти підмножину, реалізуйте IRevisionCriteria.IsMatch(revision) і передайте її до RevisionCollection.Accept(criteria) або Reject(criteria).
Групи редакцій
Послідовні ревізії від того ж автора та одного типу відображаються разом як RevisionGroup — доступний через Revision.Group для однієї ревізії, або RevisionCollection.Groups (a RevisionGroupCollection) для кожної групи в документі. Кожна група повідомляє про її об’єднані Text, Author та RevisionType.
Запис нових відстежуваних змін
Викличте Document.StartTrackRevisions(author) або його перевантаження StartTrackRevisions(author, dateTime) перед внесенням правок, щоб подальші зміни записувались як ревізії, а не застосовувалися безпосередньо; викличте StopTrackRevisions(), щоб завершити відстеження. Властивість Document.TrackRevisions відображає, чи активне відстеження в даний момент.
Перегляд оригінального та кінцевого вмісту
Document.RevisionsView контролює, чи документ представлений у його Original або Final стані (значення RevisionsView), коли присутні ревізії, без зміни базових даних ревізій.
Поради та кращі практики
- Перевірте
Document.HasRevisionsперед переборомDocument.Revisions, щоб уникнути зайвої роботи над документами без відстежуваних змін. - Віддавайте перевагу
RevisionCollection.Accept(criteria)/Reject(criteria)з власнимIRevisionCriteriaзамість ручного фільтрування та поокремого викликуRevision.Accept(). RevisionGroupкорисний для представлення зрозумілого підсумку змін — групування послідовних ревізій одного автора, одного типу дозволяє уникнути трактування кожного вставленого символу як окремого запису.- Завжди поєднуйте
StartTrackRevisions()з подальшим викликомStopTrackRevisions(), щоб незв’язані редагування не реєструвалися як відстежені зміни.
Типові проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
Document.Revisions порожній після редагувань | StartTrackRevisions() ніколи не був викликаний до редагування | Викличте StartTrackRevisions(author) перед внесенням правок, які ви хочете відстежити |
RevisionCollection.Accept(criteria) не приймає нічого | IRevisionCriteria.IsMatch() не збігається з жодною ревізією | Спочатку перевірте логіку критеріїв щодо фактичних значень Revision.Author/RevisionType/ParentNode |
Документ все ще показує розмітку відстежених змін після AcceptAllRevisions() | Переглядайте стан, а не дані ревізії | Встановіть Document.RevisionsView у Final, якщо вам потрібен перегляд розв’язаного вмісту |
FAQ
Як перевірити, чи має документ відстежені зміни?
Прочитайте Document.HasRevisions — це true, якщо Document.Revisions містить принаймні один Revision.
У чому різниця між Revision.Accept() та RevisionCollection.AcceptAll()?
Revision.Accept() вирішує одну конкретну ревізію; RevisionCollection.AcceptAll() (або Document.AcceptAllRevisions()) вирішує всі ревізії в колекції одразу.
Як я можу приймати лише ревізії, зроблені конкретним автором?
Реалізуйте IRevisionCriteria.IsMatch(revision), щоб перевірити revision.Author, а потім викличте RevisionCollection.Accept(criteria) з цією реалізацією.
Як я можу записати свої власні правки як відстежувані зміни?
Викличте Document.StartTrackRevisions(author) перед внесенням правок, а потім Document.StopTrackRevisions(), коли завершите.
Які типи ревізій існують?
RevisionType визначає Insertion, Deletion, FormatChange, StyleDefinitionChange та Moving.
API Reference Підсумок
| Клас / Метод | Опис |
|---|---|
Document.Revisions | RevisionCollection всіх відстежених змін у документі |
Revision | Одна відстежувана зміна: Author, DateTime, RevisionType, Accept(), Reject() |
RevisionCollection | AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria), Groups |
RevisionGroup / RevisionGroupCollection | Послідовні ревізії одного автора, одного типу згруповані разом |
IRevisionCriteria | Користувацький предикат (IsMatch(revision)) для вибіркового прийняття/відхилення |
Document.StartTrackRevisions() / StopTrackRevisions() | Записувати нові редагування як відстежувані зміни |
Document.RevisionsView | Original або Final презентація оновленого контенту |