Порівняння Word‑файлів програмно є частою вимогою для бекенд‑сервісів, які повинні виявляти зміни, генерувати звіти про ревізії або забезпечувати дотримання політик документів. GroupDocs.Comparison Cloud SDK for Node.js надає потужний API, який спрощує це завдання для Node.js‑додатків. У цьому посібнику ви дізнаєтеся, як налаштувати SDK, виконати повне порівняння двох файлів DOCX, використати еквівалентні команди cURL, зрозуміти кожну частину реалізації та дотримуватись рекомендацій кращих практик, щоб ваше рішення було надійним і безпечним.

Повний приклад коду: порівняння документів Word у Node.JS

Наступний приклад демонструє повний процес порівняння двох документів Word за допомогою GroupDocs.Comparison Cloud SDK for Node.js.

const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

// ==== Authentication =========================================================
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";

const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

// ==== File definitions =======================================================
const sourceFileName = "document1.docx";
const targetFileName = "document2.docx";
const resultFileName = "comparison_result.docx";

const sourceFilePath = path.resolve(__dirname, sourceFileName);
const targetFilePath = path.resolve(__dirname, targetFileName);

// ==== Main async function ====================================================
(async () => {
    try {
        // ---- Upload source document -----------------------------------------
        const sourceData = fs.readFileSync(sourceFilePath);
        const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: sourceFileName,
            file: sourceData
        });
        await storageApi.uploadFile(uploadSourceReq);

// ---- Upload target document -----------------------------------------
        const targetData = fs.readFileSync(targetFilePath);
        const uploadTargetReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: targetFileName,
            file: targetData
        });
        await storageApi.uploadFile(uploadTargetReq);

// ---- Prepare comparison options --------------------------------------
        const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
            sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
            targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
            outputPath: resultFileName,
            // optional: you can set settings like generateSummaryPage, showDeletedContent, etc.
        });

const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
            compareOptions: compareOptions
        });

// ---- Execute comparison -----------------------------------------------
        const compareResult = await compareApi.compareDocument(compareRequest);
        console.log("Comparison completed. Result stored at:", compareResult.path);

// ---- (Optional) Clean up uploaded files --------------------------------
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));
        // Note: result file remains in storage; you can download it if needed.
    } catch (error) {
        console.error("Error during comparison:", error);
    }
})();

Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності правильно встановлені, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь‑якими проблемами, будь ласка, зверніться до офіційної документації або до команди підтримки за допомогою.

Виконайте порівняння документів за допомогою cURL та REST API

Якщо ви віддаєте перевагу підходу, незалежному від мови, ви можете досягти того ж результату за допомогою простих HTTP‑запитів. Нижче наведено основні команди cURL.

  1. Аутентифікація та отримання токену доступу
    Замініть YOUR_CLIENT_ID та YOUR_CLIENT_SECRET вашими обліковими даними.
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. Завантажте вихідний файл DOCX
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document1.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document1.docx"
  1. Завантажте цільовий файл DOCX
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document2.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document2.docx"
  1. Виконати операцію порівняння
curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "sourceFile": { "filePath": "document1.docx" },
           "targetFiles": [{ "filePath": "document2.docx" }],
           "outputPath": "comparison_result.docx"
         }'
  1. Завантажте отриманий файл порівняння
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/comparison_result.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o comparison_result.docx

Для отримання докладнішої інформації про запити та формати відповідей, перегляньте офіційну документацію API.

Розуміння порівняння документів Word у коді Node.JS

Нижче наведено покроковий розбір повного прикладу:

  1. Імпорт SDK та модулів Node.js
const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

GroupDocsComparisonCloud простір імен надає доступ до всіх класів API.

  1. Створіть конфігурацію за допомогою облікових даних клієнта
const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);

Цей об’єкт автентифікує кожен наступний виклик API.

  1. Створіть екземпляр CompareApi та StorageApi
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

CompareApi виконує порівняння, тоді як StorageApi керує завантаженням та видаленням файлів. Дивіться довідка API для деталей методів.

  1. Завантажте вихідний та цільовий DOCX файли
const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
    path: sourceFileName,
    file: sourceData
});
await storageApi.uploadFile(uploadSourceReq);

Той самий шаблон повторюється для цільового файлу.

  1. Налаштуйте CompareOptions та запустіть порівняння
const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
    sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
    targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
    outputPath: resultFileName,
});
const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
    compareOptions: compareOptions
});
const compareResult = await compareApi.compareDocument(compareRequest);

CompareOptions дозволяє точно налаштувати операцію (наприклад, створити сторінку підсумку). Об’єкт результату містить шлях до згенерованого документа порівняння.

  1. Очистити тимчасові файли (необов’язково)
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));

Видалення завантажених оригіналів підтримує порядок у сховищі.

Вимоги та налаштування для GroupDocs.Comparison

  1. Версія Node.js - Переконайтеся, що ви використовуєте Node 14 або новішу версію.
  2. Отримати облікові дані клієнта - Зареєструйтеся в порталі GroupDocs Cloud, щоб отримати clientId та clientSecret.
  3. Встановити SDK
npm install groupdocs-comparison-cloud
  1. (Опціонально) Завантажити зразковий проєкт - Ви можете клонувати репозиторій з сторінки GitHub.
  2. Налаштуйте ваше середовище - Встановіть облікові дані як змінні середовища або замініть заповнювачі у коді.

Для повного списку завантажуваних бінарних файлів перегляньте сторінку завантаження.

Кращі практики ефективного порівняння документів Word

  • Перевірка вхідних файлів - Перевірте розмір і формат файлу перед завантаженням, щоб уникнути зайвих викликів API.
  • Повторне використання сеансів сховища - Завантажуйте файли один раз і повторно використовуйте їхні шляхи для кількох порівнянь, щоб зменшити затримку.
  • Увімкнення сторінки підсумку лише за потреби - Генерація сторінки підсумку додає час обробки; вимикайте її для простих перевірок різниці.
  • Обробка великих документів асинхронно - Для файлів DOCX розміром більше 10 МБ розгляньте можливість опитування статусу завдання замість синхронного очікування.
  • Безпечне зберігання облікових даних - Зберігайте clientId і clientSecret у змінних середовища або менеджері секретів; ніколи не вбудовуйте їх у код.

Висновок

Порівняння Word‑документів у Node.JS стає простим завдяки GroupDocs.Comparison Cloud SDK for Node.js. Дотримуючись кроків встановлення, використовуючи наданий приклад коду та за потреби застосовуючи REST API з cURL, ви можете інтегрувати потужне порівняння документів у будь‑який бекенд‑сервіс. Пам’ятайте про захист своїх облікових даних, очищення тимчасових файлів і налаштування параметрів порівняння для підвищення продуктивності. Для виробничих розгортань потрібна ліцензована версія; деталі цін доступні на сторінці продукту, а тимчасову ліцензію для оцінки можна отримати зі сторінки тимчасової ліцензії. Почніть експериментувати вже сьогодні та додайте надійні можливості порівняння документів у ваші Node.js застосунки.

FAQs

  • Як порівняти Word‑документи в Node.JS без написання коду?
    Ви можете використовувати ту ж операцію через REST‑виклики. Приклади cURL у цій статті показують точну послідовність: автентифікація, завантаження файлів, виклик кінцевої точки порівняння та завантаження результату.

  • Які формати файлів підтримуються для порівняння?
    SDK підтримує DOCX, DOC, ODT, RTF, та TXT серед інших. Усі назви форматів нечутливі до регістру, але вони документуються у верхньому регістрі (наприклад, DOCX) у API reference.

  • Чи можу я порівнювати більше двох документів одночасно?
    Так. Масив targetFiles у CompareOptions може містити кілька об’єктів FileInfo, що дозволяє порівнювати вихідний файл із кількома цільовими в одному запиті.

  • Чи є спосіб налаштувати візуальний стиль результату порівняння?
    SDK пропонує налаштування, такі як showDeletedContent, showInsertedContent та generateSummaryPage. Налаштуйте ці властивості в CompareOptions, щоб контролювати, як підсвічуються зміни. Дивіться офіційну документацію для повного списку параметрів.

Read More