Сравните документы Word с помощью REST API в Node.js

Как разработчик Node.js, вы можете легко сравнить два или более документа Word на предмет сходства и различия программным путем в облаке. Это может помочь вам отслеживать изменения в разных версиях одного и того же документа Word или в разных документах. В этой статье вы узнаете, как сравнить два или более документа Word с помощью REST API в Node.js.

В этой статье должны быть раскрыты следующие темы:

REST API и Node.js SDK для сравнения документов Word

Для сравнения двух или более файлов DOCX мы будем использовать API Node.js SDK для GroupDocs.Comparison Cloud. Это позволяет сравнивать два или более документов и находить различия в результирующем файле. Вы можете легко интегрировать SDK ‎в существующие приложения Node.js ‎для сравнения документов, электронных таблиц, ‎презентаций, ‎диаграмм Visio, электронных писем и файлов многих других поддерживаемых форматов.

Вы можете установить GroupDocs.Comparison Cloud в свое приложение Node.js с помощью следующей команды в консоли:

npm install groupdocs-comparison-cloud

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

global.clientId = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
global.clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
global.myStorage = "";

const config = new groupdocs_comparison_cloud.Configuration(clientId, clientSecret);
config.apiBaseUrl = "https://api.groupdocs.cloud";

Сравните два файла Word с помощью REST API в Node.js

Вы можете сравнить свои документы Word программно, выполнив простые шаги, указанные ниже:

  1. Загрузить файлы DOCX в облако
  2. Сравнить файлы Word с помощью Node.js
  3. Скачать результирующий файл DOCX

Загрузите файлы DOCX

Во-первых, загрузите исходный и целевой файлы DOCX в облако, используя следующий пример кода:

// построить FileApi
let fileApi = groupdocs_comparison_cloud.FileApi.fromConfig(config);
let resourcesFolder = 'C:\\Files\\comparison\\uploads\\';

fs.readdir(resourcesFolder, (err, files) => {
  files.forEach(file => {
    console.log(file);
    fs.readFile(resourcesFolder + file, (err, fileStream) => {
      let request = new groupdocs_comparison_cloud.UploadFileRequest(file, fileStream, myStorage);
      fileApi.uploadFile(request);
    });
  });
});

В результате загруженные файлы DOCX будут доступны в разделе файлов вашей панели инструментов в облаке.

Сравните файлы Word с помощью Node.js

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

  • Во-первых, создайте экземпляр CompareApi.
  • Затем создайте экземпляр FileInfo и задайте путь к исходному входному файлу DOCX.
  • Затем создайте еще один экземпляр FileInfo и задайте путь к целевому входному файлу DOCX.
  • После этого создайте экземпляр ComparisonOptions и назначьте исходный и целевой файлы.
  • Затем установите путь к выходному файлу.
  • Затем создайте ComparisonsRequest с ComparisonOptions.
  • Наконец, получите результаты, вызвав метод CompareApi.comparisons() с ComparisonsRequest.

В следующем примере кода показано, как сравнить два файла Word с помощью REST API в Node.js.

// инициализировать API
let сравниватьApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// исходный файл
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.docx";

// целевой файл
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.docx";

// определить параметры сравнения
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "сравниватьd/result_сравниватьOptions.docx";

// создать запрос сравнения
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// сравнивать
let response = await сравниватьApi.comparisons(request);
console.log("Output file link: " + response.href);
Исходный и целевой файлы.

Исходный и целевой файлы.

Сравните два файла Word с помощью REST API в Node.js

Сравните два файла Word с помощью REST API в Node.js

Загрузите результирующий файл

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

// построить FileApi
let fileApi = groupdocs_comparison_cloud.FileApi.fromConfig(config);

// создать запрос на скачивание файла
let request = new groupdocs_comparison_cloud.DownloadFileRequest("compared/result_compareOptions.docx", myStorage);

// Загрузка файла
let response = await fileApi.downloadFile(request);

// сохранить в рабочем каталоге
fs.writeFile("C:\\Files\\comparison\\result_compareOptions.docx", response, "binary", function (err) { });

Сравните несколько файлов DOCX с помощью Node.js

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

  • Во-первых, создайте экземпляр CompareApi.
  • Затем создайте экземпляр FileInfo и задайте путь к исходному входному файлу DOCX.
  • Затем создайте еще один экземпляр FileInfo и задайте путь к целевому входному файлу DOCX.
  • Повторите описанные выше шаги, чтобы добавить несколько целевых файлов.
  • После этого создайте экземпляр ComparisonOptions и назначьте исходный и целевой файлы.
  • Затем установите путь к выходному файлу.
  • Затем создайте ComparisonsRequest с ComparisonOptions.
  • Наконец, получите результаты, вызвав метод CompareApi.comparisons() с ComparisonsRequest.

В следующем примере кода показано, как сравнить несколько файлов Word с помощью REST API в Node.js.

// инициализировать API
let сравниватьApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// исходный файл
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.docx";

// целевой файл 1
let target1 = new groupdocs_comparison_cloud.FileInfo();
target1.filePath = "target1.docx";

// целевой файл 2
let target2 = new groupdocs_comparison_cloud.FileInfo();
target2.filePath = "target2.docx";

// определить параметры сравнения
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target1, target2];
options.outputPath = "сравниватьd/result_Multiple.docx";

// создать запрос сравнения
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// сравнивать
let response = await сравниватьApi.comparisons(request);
console.log("Output file link: " + response.href);

Получить список изменений с помощью REST API в Node.js

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

  • Во-первых, создайте экземпляр CompareApi
  • Затем создайте экземпляр FileInfo и установите путь к исходному входному файлу DOCX.
  • Затем создайте еще один экземпляр FileInfo и установите путь к целевому входному файлу DOCX.
  • После этого создайте экземпляр ComparisonOptions и назначьте исходный и целевой файлы.
  • Затем установите путь к выходному файлу
  • Затем создайте PostChangesRequest с ComparisonOptions.
  • После этого получите результаты, вызвав метод CompareApi.postChanges() с PostChangesRequest.
  • Наконец, покажите все изменения по одному

В следующем примере кода показано, как получить список изменений с помощью REST API в Node.js.

// инициализировать API
let compareApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// исходный файл
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.docx";

// целевой файл
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.docx";

// определить параметры сравнения
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "compared/result.docx";

// создать запрос на публикацию изменений
let request = new groupdocs_comparison_cloud.PostChangesRequest(options);

// опубликовать изменения
let changes = await compareApi.postChanges(request);

console.log("Changes count: " + changes.length);

changes.forEach(change => {
  console.log(change.id + 1 +"- Target Text: " + change.targetText + ", Text: " + change.text + ", Type: " + change.type);
});
Получить список изменений с помощью REST API в Node.js

Получить список изменений с помощью REST API в Node.js

Настройте результаты сравнения с помощью Node.js

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

  • Во-первых, создайте экземпляр CompareApi.
  • Затем создайте экземпляр FileInfo и задайте путь к исходному входному файлу DOCX.
  • Затем создайте еще один экземпляр FileInfo и задайте путь к целевому входному файлу DOCX.
  • После этого создайте экземпляр Settings и задайте различные параметры сравнения, такие как чувствительностьOfComparison.
  • Затем создайте экземпляры ItemsStyle для вставленных элементов стиля, удаленных элементов стиля и измененных предметов стиля.
  • Затем установите различные свойства для каждого ItemsStyle, такие как highlightColor, fontColor, полужирный, курсив и т. д.
  • После этого создайте экземпляр ComparisonOptions и назначьте исходный и целевой файлы.
  • Затем установите путь к выходному файлу.
  • Затем назначьте настройки ComparisonOptions.
  • После этого создайте ComparisonsRequest с ComparisonOptions.
  • Наконец, получите результаты, вызвав метод CompareApi.comparisons() с ComparisonsRequest.

В следующем примере кода показано, как настроить результаты сравнения с помощью REST API в Node.js.

// инициализировать API
let сравниватьApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// исходный файл
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.docx";

// целевой файл
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.docx";

// определить настройки сравнения
let settings = new groupdocs_comparison_cloud.Settings();

// сравнить чувствительность
settings.sensitivityOfComparison = 100;

// настроить стиль изменений для вставленных элементов
settings.insertedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.insertedItemsStyle.highlightColor = "14297642";
settings.insertedItemsStyle.fontColor = "16711680";
settings.insertedItemsStyle.underline = true;

// настроить стиль изменений для удаленных элементов
settings.deletedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.deletedItemsStyle.fontColor = "14166746";
settings.deletedItemsStyle.bold = true;

// настроить стиль изменений для измененных элементов
settings.changedItemsStyle = new groupdocs_comparison_cloud.ItemsStyle();
settings.changedItemsStyle.fontColor = "14320170";
settings.changedItemsStyle.italic = true;

// определить параметры сравнения
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "сравниватьd/result_сравниватьOptions.docx";
options.settings = settings;

// создать запрос сравнения
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// сравнивать
let response = await сравниватьApi.comparisons(request);
console.log("Output file link: " + response.href);

Попробуйте онлайн

Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент сравнения DOCX, который разработан с использованием вышеуказанного API. https://products.groupdocs.app/comparison/docx

Заключение

В этой статье вы узнали, как сравнивать документы Word с помощью REST API в облаке. Более того, вы видели, как программно сравнивать несколько файлов DOCX. В этой статье также объясняется, как программно загрузить файл DOCX в облако, а затем загрузить полученный файл из облака. Кроме того, вы можете узнать больше о GroupDocs.Comparison Cloud API, воспользовавшись документацией. Мы также предоставляем раздел Справочник по API, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также