Просмотр документов Word с отслеживанием изменений и комментариев в веб-приложении

В этом блоге мы увидим, как легко просматривать документ Word с помощью фреймворка Word от Syncfusion. Комментарии и отслеживание изменений — это функции, предусмотренные в Microsoft Word для рецензирования. Аналогичным образом наша платформа Word поддерживает отслеживание изменений, принятие или отклонение отслеживаемых изменений, а также вставку, ответ, разрешение и удаление комментариев. Самое интересное, что он работает без интероп-зависимостей Microsoft Word или Office.

Syncfusion Word Processor (также известный как Редактор документов) — это веб-компонент пользовательского интерфейса, который позволяет создавать, редактировать, просматривать и печатать документы Word в интерактивном режиме в веб-приложении. Он предоставляет все стандартные функции обработки текста, такие как форматирование содержимого, изменение размера изображений и таблиц, поиск и замена текста, создание таблиц содержимого и т. д. Этот компонент доступен на платформах JavaScript (ES5 и ES6), Angular, React, Vue, ASP.NET MVC, ASP.NET Core и Blazor.

Примечание. Компонент Word Processor (редактор документов) требует взаимодействия со стороны сервера для следующих операций:

· Открытие документов Word (преобразование документов Word в формат файла SFDT).

· Вставка содержимого с форматированием.

· Ограничить редактирование.

· Проверка орфографии.

Syncfusion предоставляет серверную библиотеку для следующих платформ:

· Ядро ASP.NET

· ASP.NET MVC

· "Джава"

Вы можете найти проекты веб-API для поддерживаемых платформ в этом репозитории GitHub.

Комментарии

Комментарии — это примечания, вопросы и предложения, которые рецензент или читатель предлагает другим людям, работающим над документом Word. Компонент Syncfusion Word Processor позволяет выполнять следующие действия с комментариями:

  • Вставьте новый комментарий к выбранному содержимому.
  • Изменить существующий комментарий.
  • Ответ на комментарий.
  • Отметьте комментарий как решенный после выполнения предложенного действия или изменения.
  • Удалить один комментарий или все комментарии.

Поскольку компонент Редактор документов имеет модульную структуру, не все функции включены по умолчанию. Чтобы включить возможность комментирования, установите для свойства enableComment значение true. По умолчанию для свойства enableComment установлено значение false, поэтому комментирование в компоненте DocumentEditor отключено.

Примечание. Функция комментирования будет включена по умолчанию при использовании компонента DocumentEditorContainer.

Чтобы вставить новый комментарий, выберите текст, который вы хотите прокомментировать. Затем выберите параметр Комментарии на панели инструментов или параметр Новый комментарий на вкладке обзора, как показано на изображении ниже. Редактор установит автора нового комментария на основе значения свойства currentUser.

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

Чтобы изменить существующий комментарий, нажмите кнопку параметров в комментарии, а затем нажмите Изменить. Теперь вы можете редактировать текст комментария.

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

Отслеживать изменения

Функция отслеживания изменений отслеживает все вставки и удаления в документе Word. Вы можете увидеть, что было вставлено или удалено в конкретном документе кем и когда. Кроме того, он позволяет принять или отклонить изменения, внесенные в документ.

Syncfusion значительно облегчает сообщество разработчиков благодаря многофункциональным компонентам обработки Word, которые позволяют разработчикам добавлять расширенные возможности просмотра документов Word в свои приложения. Продукты:

  • Расширенный текстовый процессор (редактор) для отслеживания изменений в документе Word с интуитивно понятным пользовательским интерфейсом в веб-приложениях.
  • Комплексная библиотека Word, которая позволяет пользователям получать доступ и принимать или отклонять отслеживаемые изменения в документе Word с помощью мощных API-интерфейсов в .NET и Java.

Интуитивно понятный пользовательский интерфейс для отслеживания изменений

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

  • Зачеркивание удаленной информации.
  • Подчеркивание для вставленной информации.

Текстовый процессор предоставляет интуитивно понятный пользовательский интерфейс для выполнения следующих действий с функцией отслеживания изменений:

  • Включить или отключить функцию отслеживания изменений.
  • Доступ ко всем отслеживаемым версиям.
  • Принять или отклонить конкретное изменение.
  • Примите или отклоните все изменения.
  • Фильтровать изменения на основе пользователей.
  • Навигация между изменениями.

Чтобы включить или отключить отслеживание изменений в редакторе документов, включите параметр Отслеживать изменения на панели инструментов.

Принять или отклонить изменения

Syncfusion предоставляет комплексную библиотеку Word как для .NET (C#, VB.NET), так и для Java, что дает вам полную свободу выбора наиболее подходящего кода автоматизации на стороне сервера для ваших проектов. Он предоставляет мощные API для доступа к ревизиям (отслеживаемым изменениям) и принятия или отклонения изменения или группы изменений.

Вы можете автоматизировать принятие или отклонение отслеживаемых изменений на стороне сервера с помощью библиотеки Word Syncfusion перед отображением документа Word в веб-браузере. Прежде чем принять или отклонить изменения, вы можете проверить и отфильтровать изменения на основе:

  • Авторы
  • Типы изменений (вставка, удаление, форматирование, перемещение из, перемещение в, изменение определения стиля).

На следующих изображениях показаны отслеживаемые изменения в документе Word.

Принять изменения

В следующем примере кода C# показано, как принять все изменения, внесенные автором в документ Word с помощью библиотеки Word.

//Reads the input Word document.
Stream inputStream = File.OpenRead(Path.GetFullPath(@"../../../../../../Data/InputWithTrackedChanges.docx"));
string authorName = "Steven Buchanan";
int acceptedChangesCount = AcceptChanges(inputStream, authorName);
Console.WriteLine("Accepted {0} changes made by {1}.", acceptedChangesCount, authorName);

static int AcceptChanges(Stream inputStream, string authorName)
{
    int acceptedChangesCount = 0;
    //Creates new Word document instance for Word processing.
    using (WordDocument document = new WordDocument())
    {
        //Opens the Word document containing tracked changes.
        document.Open(inputStream, FormatType.Docx);
        inputStream.Dispose();
        //Iterates all the revisions present in the Word document.
        for (int i = document.Revisions.Count - 1; i >= 0; i--)
        {
            //Validates the author of current revision to accept/reject it.
            if (document.Revisions[i].Author == authorName)
            {
                //Accepts the current revision.
                document.Revisions[i].Accept();
                acceptedChangesCount++;
            }
            //Resets i to last item, since accepting one revision will impact all its related revisions and leads to change in Revsions
            if (i > document.Revisions.Count - 1)
                i = document.Revisions.Count;
        }
        //Saves the Word document as DOCX format
        using (Stream docStream = File.Create(Path.GetFullPath(@"../../../OutputAfterAcceptingChanges.docx")))
        {
            document.Save(docStream, FormatType.Docx);
        }
    }
    return acceptedChangesCount;
}

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

Результирующий документ Word выглядит следующим образом.

Точно так же вы можете отфильтровать все изменения, сделанные автором, и отклонить отфильтрованные изменения.

Отклонить изменения

В следующем примере кода C# показано, как отклонить вставку и удалить изменения, сделанные всеми авторами, и сохранить изменения форматирования в документе Word с помощью библиотеки Word.

//Reads the input Word document.
Stream inputStream = File.OpenRead(Path.GetFullPath(@"../../../../../../Data/InputWithTrackedChanges.docx"));
RevisionType revisionType = RevisionType.Insertions | RevisionType.Deletions;
int rejectedChangesCount = RejectChanges(inputStream, revisionType);

static int RejectChanges(Stream inputStream, RevisionType revisionType)
{
    int rejectedChangesCount = 0;
    //Creates new Word document instance for Word processing.
    using (WordDocument document = new WordDocument())
    {
        //Opens the Word document containing tracked changes.
        document.Open(inputStream, FormatType.Docx);
        inputStream.Dispose();
        //Iterates all the revisions present in the Word document.
        for (int i = document.Revisions.Count - 1; i >= 0; i--)
        {
            //Validates the revision type of current revision to accept/reject it.
            if ((document.Revisions[i].RevisionType & revisionType) != 0)
            {
                //Rejects the current revision.
                document.Revisions[i].Reject();
                rejectedChangesCount++;
            }
            //Resets i to last item, since rejecting one revision will impact all its related revisions. and lead to change in Revsions.
            if (i > document.Revisions.Count - 1)
                i = document.Revisions.Count;
        }
        //Saves the Word document as DOCX format.
        using (Stream docStream = File.Create(Path.GetFullPath(@"../../../OutputAfterRejectingChanges.docx")))
        {
            document.Save(docStream, FormatType.Docx);
        }
    }
    return rejectedChangesCount;
}

Для получения дополнительной информации см. проект отклонить все изменения, внесенные пользователем.

Результирующий документ Word выглядит следующим образом.

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

Репозиторий GitHub

Для получения дополнительной информации обратитесь к полному рабочему примеру рецензирования документа Word.

Заключение

С помощью функций комментариев и отслеживания изменений вы можете легко предоставить возможность рецензирования документа Word в своем веб-приложении.

Найдите минутку, чтобы просмотреть документацию, где вы найдете другие параметры и функции, все с сопровождающими примерами кода. Если вы не знакомы с нашим текстовым процессором (редактором документов), настоятельно рекомендуется ознакомиться с нашим Руководством по началу работы.

Вы уже являетесь пользователем Syncfusion? Скачать настройку продукта можно здесь. Если вы еще не являетесь пользователем Syncfusion, вы можете скачать бесплатную 30-дневную пробную версию здесь.

Если у вас есть какие-либо вопросы об этих функциях, сообщите нам об этом в комментариях ниже. Вы также можете связаться с нами через наш форум поддержки, портал поддержки или портал обратной связи. Мы будем рады помочь вам!

Связанные блоги

Первоначально опубликовано на https://www.syncfusion.com 10 декабря 2021 г.