Word ファイルをプログラムで比較することは、変更の検出、リビジョンレポートの生成、またはドキュメント ポリシーの適用が必要なバックエンド サービスで頻繁に求められます。 GroupDocs.Comparison Cloud SDK for Node.js は、Node.js アプリケーション向けにこのタスクを簡素化する強力な API を提供します。このガイドでは、SDK のセットアップ方法、2 つの DOCX ファイルの完全比較の実行方法、同等の cURL コマンドの使用方法、実装の各部分の理解、そしてソリューションを信頼性とセキュリティを保つためのベストプラクティス推奨事項について学びます。
完全なコード例: Node.JS で Word ドキュメントを比較
以下の例は、GroupDocs.Comparison Cloud SDK for Node.js を使用して、2 つの Word ドキュメントを比較するフル エンドツーエンド ワークフローを示しています。
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 コマンドを示します。
- 認証してアクセストークンを取得する
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"
- ソース 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"
- 対象の 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"
- 比較操作を実行する
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"
}'
- 結果の比較ファイルをダウンロード
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 ドキュメントをご覧ください。
Node.JS コードで Word 文書の比較を理解する
以下は完全な例のステップバイステップの内訳です:
- SDK と Node.js モジュールのインポート
const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");
GroupDocsComparisonCloud 名前空間はすべての API クラスへのアクセスを提供します。
- クライアント資格情報で構成を作成する
const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);
このオブジェクトは、以降のすべての API 呼び出しを認証します。
- CompareApi と StorageApi のインスタンス化
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);
CompareApi は比較を処理し、StorageApi はファイルのアップロードと削除を管理します。メソッドの詳細については、API リファレンスをご覧ください。
- ソースおよびターゲットの DOCX ファイルをアップロード
const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
path: sourceFileName,
file: sourceData
});
await storageApi.uploadFile(uploadSourceReq);
ターゲットファイルについても同じパターンが繰り返されます。
- 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 を使用すると、操作を細かく調整できます(例: サマリーページを生成)。結果オブジェクトには、生成された比較ドキュメントへのパスが含まれます。
- 一時ファイルのクリーンアップ(オプション)
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));
アップロードされた元ファイルを削除すると、ストレージが整理されます。
GroupDocs.Comparison の前提条件とセットアップ
- Node.js バージョン - Node 14 以上が実行されていることを確認してください。
- クライアント認証情報の取得 - GroupDocs Cloud ポータルに登録して
clientIdとclientSecretを取得します。 - SDK のインストール
npm install groupdocs-comparison-cloud
- (オプション)サンプルプロジェクトをダウンロード - リポジトリはGitHub ページからクローンできます。
- 環境を構成 - 資格情報を環境変数として設定するか、コード内のプレースホルダーを置き換えてください。
ダウンロード可能なバイナリの完全なリストについては、ダウンロードページをご覧ください。
効率的な Word ドキュメント比較のベストプラクティス
- Validate input files - アップロード前にファイルサイズと形式を確認し、不要な API 呼び出しを防ぎます。
- Reuse storage sessions - ファイルを一度アップロードし、そのパスを複数の比較で再利用してレイテンシを削減します。
- Enable summary page only when needed - サマリーページを生成すると処理時間が増えるため、シンプルな差分チェックでは無効にします。
- Handle large documents asynchronously - 10 MB を超える DOCX ファイルの場合、同期的に待つのではなくジョブステータスをポーリングすることを検討してください。
- Secure credentials -
clientIdとclientSecretは環境変数またはシークレットマネージャーに保存し、決してハードコードしないでください。
結論
Node.JS で Word ドキュメントを比較することは、GroupDocs.Comparison Cloud SDK for Node.js を使用すれば簡単になります。インストール手順に従い、提供されたコード例を使用し、必要に応じて cURL を使った REST API を活用することで、あらゆるバックエンドサービスに堅牢なドキュメント比較機能を統合できます。資格情報を安全に保管し、一時ファイルをクリーンアップし、パフォーマンスのために比較オプションを調整することを忘れないでください。本番環境での展開にはライセンス版が必要です。価格の詳細は製品ページで確認でき、一時ライセンスページ から評価用の一時ライセンスを取得できます。今日から実験を始め、Node.js アプリケーションに信頼性の高いドキュメント差分機能を導入しましょう。
FAQs
コードを書かずに Node.JS で Word ドキュメントを比較するにはどうすればよいですか?
同じ操作を REST 呼び出しで実行できます。この記事の cURL 例は、認証、ファイルのアップロード、比較エンドポイントの呼び出し、結果のダウンロードという正確な手順を示しています。比較でサポートされているファイル形式は何ですか?
SDK は DOCX、DOC、ODT、RTF、および TXT などをサポートしています。すべての形式名は大文字小文字を区別しませんが、API リファレンス では大文字(例: DOCX)で記載されています。一度に2つ以上のドキュメントを比較できますか?
はい。CompareOptionsのtargetFiles配列には複数のFileInfoオブジェクトを含めることができ、単一のリクエストでソースファイルを複数のターゲットと比較できます。比較結果のビジュアルスタイルをカスタマイズする方法はありますか?
SDK ではshowDeletedContent、showInsertedContent、generateSummaryPageなどの設定が提供されています。これらのプロパティをCompareOptionsで調整して、変更のハイライト方法を制御できます。全オプションの一覧については、公式ドキュメント を参照してください。
