在 NodeJs 中使用 REST API 比較 PDF 文件

您可以在雲端以編程方式比較兩個或多個 PDF 文檔。通過比較,您可以識別文檔中的相似點和不同點。在本文中,您將學習如何在 Node.js 中使用 REST API 比較 PDF 文件。

本文應涵蓋以下主題:

文檔比較 REST API 和 Node.js SDK

我將使用 GroupDocs.Comparison Cloud 的 Node.js SDK API 來比較 PDF 文檔。它允許您比較兩個或多個文檔並找出不同之處。結果,它創建了一個包含差異的結果文件。它還使您能夠接受或拒絕檢索到的更改。您可以輕鬆地將它集成到您現有的 Node.js 應用程序中,以比較文檔、電子表格、演示文稿、Visio 圖表、電子郵件和許多其他格式的文件。它還提供 .NET、Java、PHP、Python 和 Ruby SDK 作為 Cloud API 的文檔比較家族成員

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

npm install groupdocs-comparison-cloud --save

在執行上述步驟之前,請從 dashboard 獲取您的 Client ID 和 Secret。獲得 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 比較 PDF 文件

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

  1. 上傳PDF文件至雲端
  2. 使用 Node.js 比較 PDF 文件
  3. 下載 生成的 PDF 文件

上傳 PDF 文件

首先,使用以下代碼示例將源文件和目標 PDF 文件上傳到雲端:

// 構造FileApi
let fileApi = groupdocs_comparison_cloud.FileApi.fromConfig(config);
let resourcesFolder = 'C:\\Files\\';

fs.readdir(resourcesFolder, (err, files) => {
  files.forEach(file => {
    // 一個一個地讀取文件
    fs.readFile(resourcesFolder + file, (err, fileStream) => {
      // 創建上傳文件請求
      let request = new groupdocs_comparison_cloud.UploadFileRequest(file, fileStream, myStorage);
      // 上傳文件
      fileApi.uploadFile(request)
        .then(function (response) {
          console.log(file + " uploaded: " + response.uploaded.length);
        })
        .catch(function (error) {
          console.log("Error: " + error.message);
        });
    });
  });
});

因此,上傳的 PDF 文件將在雲端儀表板的 文件部分 中可用。

使用 Node.js 比較 PDF 文件

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

  • 創建 CompareApi 的實例
  • 設置源 .pdf 文件
  • 設置目標 .pdf 文件
  • 定義比較選項
  • 分配源文件和目標文件
  • 設置輸出文件路徑
  • 創建比較請求
  • 通過調用 CompareApi.comparisons() 方法獲取結果

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

// 初始化接口
let 比較Api = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// 源文件
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// 目標文件
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// 定義比較選項
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "比較d/result.pdf";

// 創建比較請求
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// 比較
let response = await 比較Api.comparisons(request);
console.log("Output file link: " + response.href);
使用 Node.js 比較 PDF 文件

使用 Node.js 比較 PDF 文件

生成的文件還在文檔末尾包含一個摘要頁面,如下所示:

在 Node.js 中使用 REST API 比較 PDF 文件

下載結果文件

上面的代碼示例會將差異保存在雲端新創建的 PDF 文件中。您可以使用以下代碼示例下載它:

// 構建FileApi
let fileApi = groupdocs_comparison_cloud.FileApi.fromConfig(config);

// 創建下載文件請求
let request = new groupdocs_comparison_cloud.DownloadFileRequest("compared\\result.pdf", myStorage);

// 下載文件
let response = await fileApi.downloadFile(request);

// 保存在工作目錄
fs.writeFile("C:\\Files\\result.pdf", response, "binary", function (err) { });

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

您可以按照下面提到的簡單步驟以編程方式比較多個 PDF 文檔:

  • 創建 CompareApi 的實例
  • 設置源 .pdf 文件
  • 設置多個目標 .pdf 文件
  • 創建 ComparisonOptions 實例
  • 分配源文件和目標文件
  • 設置輸出文件路徑
  • 創建比較請求
  • 通過調用 CompareApi.comparisons() 方法獲取結果

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

// 初始化接口
let 比較Api = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// 源文件
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// 目標文件 1
let target1 = new groupdocs_comparison_cloud.FileInfo();
target1.filePath = "target.pdf";

// 目標文件 2
let target2 = new groupdocs_comparison_cloud.FileInfo();
target2.filePath = "target2.pdf";

// 定義比較選項
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target1, target2];
options.outputPath = "比較d/result.pdf";

// 創建比較請求
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// 比較
let response = await 比較Api.comparisons(request);

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

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

  • 創建 CompareApi 的實例
  • 設置源 .pdf 文件
  • 設置目標 .pdf 文件
  • 創建設置實例
  • 設置比較靈敏度
  • 自定義項目樣式
  • 創建 ComparisonOptions 實例
  • 分配源文件和目標文件
  • 設置輸出文件路徑
  • 分配設置
  • 創建比較請求
  • 通過調用 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.pdf";

// 目標文件
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// 定義比較設置
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.pdf";
options.settings = settings;

// 創建比較請求
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// 比較
let response = await 比較Api.comparisons(request);

使用 Node.js 獲取更改列表

通過執行以下簡單步驟以編程方式比較 PDF 文檔後,您可以獲得已發現差異的完整列表:

  • 創建 CompareApi 的實例
  • 設置源 .pdf 文件
  • 設置目標 .pdf 文件
  • 定義比較選項
  • 創建比較請求
  • 通過調用 CompareApi.comparisons() 方法獲取結果
  • 一一顯示所有變化

以下代碼示例展示瞭如何在 Node.js 中使用 REST API 獲取更改列表。

// 初始化接口
let compareApi = groupdocs_comparison_cloud.CompareApi.fromKeys(clientId, clientSecret);

// 源文件
let source = new groupdocs_comparison_cloud.FileInfo();
source.filePath = "source.pdf";

// 目標文件
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

// 定義比較選項
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "compared/result.pdf";

// 創建比較請求
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 獲取更改列表

使用 Node.js 獲取更改列表

使用 Node.js 比較和保存密碼和元數據 {#Compare-and-Save-with-Password-&-Metadata-using-Nodejs}

請按照下面提到的步驟對生成的文件進行密碼保護,並將其與元數據一起保存:

  • 創建 CompareApi 的實例
  • 設置源 .pdf 文件
  • 設置目標 .pdf 文件
  • 創建設置實例
  • 設置元數據和密碼
  • 創建 ComparisonOptions 實例
  • 分配源文件和目標文件
  • 設置輸出文件路徑
  • 分配設置
  • 創建比較請求
  • 通過調用 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.pdf";

// 目標文件
let target = new groupdocs_comparison_cloud.FileInfo();
target.filePath = "target.pdf";

let settings = new groupdocs_comparison_cloud.Settings();

// 設置元數據
settings.metadata = new groupdocs_comparison_cloud.Metadata();
settings.metadata.author = "Author";
settings.metadata.company = "GroupDocs";
settings.metadata.lastSaveBy = "Last saved by";
settings.cloneMetadata = groupdocs_comparison_cloud.Settings.CloneMetadataEnum.FileAuthor;

// 設置密碼
settings.password = "password";
settings.passwordSaveOption = groupdocs_comparison_cloud.Settings.PasswordSaveOptionEnum.User;

// 定義比較選項
let options = new groupdocs_comparison_cloud.ComparisonOptions();
options.sourceFile = source;
options.targetFiles = [target];
options.outputPath = "比較d/result_Metadata.pdf";
options.settings = settings;

// 創建比較請求
let request = new groupdocs_comparison_cloud.ComparisonsRequest(options);

// 比較
let response = await 比較Api.comparisons(request);

在線試用

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

結論

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

也可以看看