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.RevisionsRevisionCollection всіх відстежених змін у документі
RevisionОдна відстежувана зміна: Author, DateTime, RevisionType, Accept(), Reject()
RevisionCollectionAcceptAll(), RejectAll(), Accept(criteria), Reject(criteria), Groups
RevisionGroup / RevisionGroupCollectionПослідовні ревізії одного автора, одного типу згруповані разом
IRevisionCriteriaКористувацький предикат (IsMatch(revision)) для вибіркового прийняття/відхилення
Document.StartTrackRevisions() / StopTrackRevisions()Записувати нові редагування як відстежувані зміни
Document.RevisionsViewOriginal або Final презентація оновленого контенту

Дивіться також

 Українська