NodeJs の REST API を使用して PDF ファイルを比較する

クラウド上でプログラムを使用して 2 つ以上の PDF ドキュメントを比較できます。比較により、ドキュメント内の類似点と相違点を特定できます。この記事では、Node.js の REST API を使用して PDF ファイルを比較する方法を学習します。

この記事では次のトピックについて説明します。

REST API と Node.js SDK のドキュメント比較

PDF ドキュメントの比較には GroupDocs.Comparison Cloud の Node.js SDK API を使用します。 2 つ以上のドキュメントを比較し、相違点を見つけることができます。その結果、相違点を含む結果ファイルが作成されます。また、取得した変更を承認または拒否することもできます。これを既存の Node.js アプリケーションに簡単に統合して、ドキュメント、スプレッドシート、プレゼンテーション、Visio 図、電子メール、その他多くの形式のファイルを比較できます。また、クラウド API の ドキュメント比較ファミリー メンバー として、.NET、Java、PHP、Python、および Ruby SDK も提供します。

コンソールで次のコマンドを使用して、GroupDocs.Comparison Cloud を Node.js アプリケーションにインストールできます。

npm install groupdocs-comparison-cloud --save

上記の手順に従う前に、ダッシュボード からクライアント 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 を使用して PDF ファイルを比較する

以下の簡単な手順に従って、PDF ドキュメントをプログラムで比較できます。

  1. PDFファイルをクラウドにアップロード
  2. Node.js を使用して PDF ファイルを比較
  3. ダウンロード 結果の 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 => {
    // ファイルを 1 つずつ読み込む
    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 ファイルを比較する

以下の手順に従って、2 つの PDF ドキュメントをプログラムで比較できます。

  • CompareApi のインスタンスを作成する
  • ソース .pdf ファイルを設定します
  • ターゲットの .pdf ファイルを設定します
  • 比較オプションの定義
  • ソースファイルとターゲットファイルを割り当てる
  • 出力ファイルのパスを設定する
  • 比較の作成リクエスト
  • CompareApi.comparisons() メソッドを呼び出して結果を取得します

次のコード例は、Node.js の REST API を使用して 2 つの PDF ファイルを比較する方法を示しています。

// 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 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 ファイルを比較する方法を示しています。

// APIを初期化する
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 を使用して比較結果をカスタマイズする方法を示しています。

// 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() メソッドを呼び出して結果を取得します
  • すべての変更を 1 つずつ表示します

次のコード例は、Node.js の REST API を使用して変更のリストを取得する方法を示しています。

// 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 を使用して、結果のファイルをパスワードとメタデータとともに保存する方法を示しています。

// 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 リファレンス セクションも提供しています。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。

関連項目