在 Node.js 中使用 REST API 比較 Word 文檔

作為 Node.js 開發人員,您可以在雲端以編程方式輕鬆比較兩個或多個 Word 文檔的異同。它可以幫助您跟踪同一 Word 文檔或不同文檔的不同版本中的更改。在本文中,您將學習如何在 Node.js 中使用 REST API 比較兩個或多個 Word 文檔。

本文應涵蓋以下主題:

REST API 和 Node.js SDK 比較 Word 文檔

為了比較兩個或多個 DOCX 文件,我們將使用 GroupDocs.Comparison Cloud 的 Node.js SDK API。它允許您比較兩個或多個文檔並找出結果文件中的差異。您可以輕鬆地將 SDK 集成到您現有的 Node.js 應用程序中,以比較文檔、電子表格、演示文稿、Visio 圖表、電子郵件和許多其他支持格式 的文件。

您可以在控制台中使用以下命令將 GroupDocs.Comparison Cloud 安裝到您的 Node.js 應用程序:

npm install groupdocs-comparison-cloud

在執行上述步驟之前,請從儀表板獲取您的客戶端 ID 和密碼。獲得 ID 和密碼後,添加如下所示的代碼:

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";

在 Node.js 中使用 REST API 比較兩個 Word 文件

您可以按照下面給出的簡單步驟以編程方式比較您的 Word 文檔:

  1. 上傳DOCX文件到雲端
  2. 使用 Node.js 比較 Word 文件
  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 文件將在雲端儀表板的 文件部分 中可用。

使用 Node.js 比較 Word 文件

您可以按照以下步驟以編程方式比較兩個 Word 文檔:

  • 首先,創建 CompareApi 的實例。
  • 接下來,創建 FileInfo 的實例並設置源輸入 DOCX 文件路徑。
  • 然後,創建另一個 FileInfo 實例並設置目標輸入 DOCX 文件路徑。
  • 之後,創建 ComparisonOptions 的實例並分配源文件和目標文件。
  • 然後,設置輸出文件路徑。
  • 接下來,使用 ComparisonOptions 創建 ComparisonsRequest。
  • 最後,通過使用 ComparisonsRequest 調用 CompareApi.comparisons() 方法來獲取結果。

以下代碼示例展示瞭如何在 Node.js 中使用 REST API 比較兩個 Word 文件。

// 初始化接口
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);
源文件和目標文件。

源文件和目標文件。

在 Node.js 中使用 REST API 比較兩個 Word 文件

在 Node.js 中使用 REST API 比較兩個 Word 文件

下載結果文件

上面的代碼示例將差異保存在雲端新創建的 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) { });

使用 Node.js 比較多個 DOCX 文件

您可以按照以下步驟以編程方式比較多個 Word 文檔:

  • 首先,創建 CompareApi 的實例。
  • 接下來,創建 FileInfo 的實例並設置源輸入 DOCX 文件路徑。
  • 然後,創建另一個 FileInfo 實例並設置目標輸入 DOCX 文件路徑。
  • 重複以上步驟添加多個目標文件。
  • 之後,創建 ComparisonOptions 的實例並分配源文件和目標文件。
  • 然後,設置輸出文件路徑。
  • 接下來,使用 ComparisonOptions 創建 ComparisonsRequest。
  • 最後用ComparisonsRequest調用CompareApi.comparisons()方法得到結果

以下代碼示例展示瞭如何在 Node.js 中使用 REST API 比較多個 Word 文件。

// 初始化接口
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);

在 Node.js 中使用 REST API 獲取更改列表

按照下面給出的步驟以編程方式比較 Word 文檔後,您可以獲得已發現差異的完整列表:

  • 首先,創建 CompareApi 的實例
  • 接下來,創建 FileInfo 的實例並設置源輸入 DOCX 文件路徑
  • 然後,創建另一個 FileInfo 實例並設置目標輸入 DOCX 文件路徑
  • 之後,創建 ComparisonOptions 的實例並分配源文件和目標文件
  • 然後,設置輸出文件路徑
  • 接下來,使用 ComparisonOptions 創建 PostChangesRequest
  • 之後,使用 PostChangesRequest 調用 CompareApi.postChanges() 方法獲取結果
  • 最後,一一展示所有變化

以下代碼示例展示瞭如何在 Node.js 中使用 REST 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);
});
在 Node.js 中使用 REST API 獲取更改列表

在 Node.js 中使用 REST API 獲取更改列表

使用 Node.js 自定義比較結果

您可以按照以下步驟輕鬆地以編程方式自定義更改樣式:

  • 首先,創建 CompareApi 的實例。
  • 接下來,創建 FileInfo 的實例並設置源輸入 DOCX 文件路徑。
  • 然後,創建另一個 FileInfo 實例並設置目標輸入 DOCX 文件路徑。
  • 之後,創建 Settings 的實例並設置各種比較設置,例如 sensitivityOfComparison。
  • 接下來,為 insertedItemsStyle、deletedItemsStyle 和 changedItemsStyle 創建 ItemsStyle 的實例。
  • 然後,為每個 ItemsStyle 設置各種屬性,例如 highlightColor、fontColor、bold、italic 等。
  • 之後,創建 ComparisonOptions 的實例並分配源文件和目標文件。
  • 然後,設置輸出文件路徑。
  • 接下來,將設置分配給 ComparisonOptions
  • 之後,使用 ComparisonOptions 創建 ComparisonsRequest。
  • 最後用ComparisonsRequest調用CompareApi.comparisons()方法得到結果

以下代碼示例展示瞭如何在 Node.js 中使用 REST 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);

在線試用

請試用以下使用上述API開發的免費在線DOCX比較工具。 https://products.groupdocs.app/comparison/docx

結論

在本文中,您了解瞭如何使用雲端的 REST API 比較 Word 文檔。此外,您還了解瞭如何以編程方式比較多個 DOCX 文件。本文還介紹瞭如何以編程方式將 DOCX 文件上傳到雲端,然後從雲端下載生成的文件。此外,您可以使用 文檔 了解有關 GroupDocs.Comparison Cloud API 的更多信息。我們還提供了一個 API 參考 部分,讓您可以直接通過瀏覽器可視化我們的 API 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看