您可以在雲端以編程方式比較兩個或多個 PDF 文檔。通過比較,您可以識別文檔中的相似點和不同點。在本文中,您將學習如何在 Node.js 中使用 REST API 比較 PDF 文件。
本文應涵蓋以下主題:
- 文檔比較 REST API 和 Node.js SDK
- 在 Node.js 中使用 REST API 比較 PDF 文件
- 使用 Node.js 比較多個 PDF 文件
- 使用 Node.js 自定義比較結果
- 使用 Node.js 獲取更改列表
- 使用 Node.js 比較和保存密碼和元數據
文檔比較 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 文檔:
- 上傳PDF文件至雲端
- 使用 Node.js 比較 PDF 文件
- 下載 生成的 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);
生成的文件還在文檔末尾包含一個摘要頁面,如下所示:
下載結果文件
上面的代碼示例會將差異保存在雲端新創建的 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 比較和保存密碼和元數據 {#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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。