Отслеживать изменения в документе
Функция отслеживания изменений, также известная как проверка, позволяет отслеживать изменения в содержании и форматировании, внесенные вами или другими пользователями. Эта функция отслеживания изменений с помощью 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.
В следующем примере кода показано, как применять различные свойства с изменениями: