Отслеживать изменения в документе

Функция отслеживания изменений, также известная как проверка, позволяет отслеживать изменения в содержании и форматировании, внесенные вами или другими пользователями. Эта функция отслеживания изменений с помощью Aspose.Words поддерживает отслеживание изменений с помощью Microsoft Word. С помощью этой функции вы можете получить доступ к отдельным редакциям вашего документа и применить к ним различные свойства.

Когда вы включите функцию отслеживания изменений, все вставленные, удаленные и измененные элементы документа будут визуально выделены с информацией о том, кем, когда и что было изменено. Объекты, которые содержат информацию о том, что было изменено, называются “отслеживаемыми изменениями”. Например, предположим, что вы хотите просмотреть документ и внести в него важные изменения – это может означать, что вам необходимо внести правки. Кроме того, вам может потребоваться вставить комментарии для обсуждения некоторых изменений. Вот где пригодится отслеживание изменений в документах.

В этой статье объясняется, как управлять изменениями, внесенными многими рецензентами в один и тот же документ, и отслеживать их, а также свойства для отслеживания изменений.

Что такое Пересмотр

Прежде чем перейти к рассмотрению изменений, давайте объясним значение изменений. Revision - это изменение, которое происходит в одном узле документа, в то время как группа изменений, представленная классом RevisionGroup, представляет собой группу последовательных изменений, которые происходят во многих узлах документа. По сути, revision - это инструмент для отслеживания изменений.

Изменения используются в функции отслеживания изменений и в функции сравнения документов, где изменения отображаются в результате сравнения. Таким образом, изменения в функции отслеживания изменений показывают, кем и что было изменено.

Aspose.Words поддерживает различные типы редакций, как и в Microsoft Word, такие как вставка, удаление, FormatChange, StyleDefinitionChange и перемещение. Все типы редакций представлены перечислением RevisionType.

Запуск и остановка отслеживания изменений

Редактирование документа обычно не считается доработкой, пока вы не начнете его отслеживать. Aspose.Words позволяет автоматически отслеживать все изменения в вашем документе с помощью простых шагов. Вы можете легко запустить процесс отслеживания изменений, используя метод start_track_revisions. Если вам нужно остановить процесс отслеживания изменений, чтобы любые будущие правки не считались ревизиями, вам нужно будет использовать метод stop_track_revisions.

В конце процесса отслеживания изменений в вашем документе у вас будет возможность даже принять все изменения или отклонить их, чтобы вернуть документ к его первоначальному виду. Этого можно достичь, используя метод accept_all_revisions или reject_all. Кроме того, вы можете принять или отклонить каждую редакцию отдельно, используя метод accept или reject.

Все изменения будут отслеживаться в течение одной итерации с момента запуска процесса до момента его остановки. Связь между различными итерациями представлена в следующем сценарии: вы завершаете процесс отслеживания, затем вносите некоторые изменения и снова начинаете отслеживать изменения. В этом случае все изменения, которые вы не приняли или отклонили, будут отображены снова.

В следующем примере кода показано, как работать с отслеживанием изменений:

В следующем примере кода показано, как генерируются изменения при перемещении узла в отслеживаемом документе:

Управление изменениями и их хранение в виде ревизий

С помощью функции отслеживания предыдущих изменений вы можете понять, какие изменения были внесены в ваш документ и кто внес эти изменения. В то время как с помощью функции track_revisions вы принудительно сохраняете любые изменения в вашем документе в виде ревизий.

Aspose.Words позволяет проверить, есть ли в документе редакция или нет, используя свойство has_revision. Если вам не нужно автоматически отслеживать изменения в вашем документе с помощью методов start_track_revisions и stop_track_revisions, вы можете использовать свойство track_revisions, чтобы проверить, отслеживаются ли изменения при редактировании документа в Microsoft Word и сохраняются ли они в виде изменений.

Функция track_revisions вносит правки вместо реальных изменений DOM. Но сами правки являются отдельными. Например, если вы удаляете какой-либо абзац, Aspose.Words внесите его в качестве правки, пометив как удаленный, вместо того, чтобы удалять его.

Кроме того, Aspose.Words позволяет проверить, был ли объект вставлен, удален или изменено форматирование, используя свойства is_delete_revision, is_format_revision, is_insert_revision, is_move_from_revision, и is_move_to_revision.

В следующем примере кода показано, как применять различные свойства с изменениями: