Node.js の REST API を使用して PDF にスタンプで署名する

スタンプ署名を使用すると、紙の文書にゴム製の署名スタンプを使用するのと同じ方法で、PDF 文書に電子署名できます。カスタマイズされたスタンプ署名を使用して、クラウド上でプログラム的に PDF ドキュメントに署名できます。この記事では、Node.js の REST API を使用して PDF ドキュメントにスタンプ署名を付ける方法を学びます。

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

PDF 署名 REST API と Node.js SDK

PDF ドキュメントの署名には、GroupDocs.Signature Cloud の Node.js SDK API を使用します。これにより、画像、バーコード、QR コード、テキストベース、デジタル、スタンプ署名など、さまざまなタイプの署名を作成、検証、検索できます。コンソールで次のコマンドを使用してインストールしてください。

npm install groupdocs-signature-cloud

上記の手順に従う前に、ダッシュボードからクライアント ID とシークレットを取得してください。 ID とシークレットを取得したら、以下に示すようにコードを追加します。

// このコード例は、コードにクライアント ID とシークレットを追加する方法を示しています。
global.clientId = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
global.clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
global.myStorage = "";

const config = new groupdocs_signature_cloud.Configuration(clientId, clientSecret);
config.apiBaseUrl = "https://api.groupdocs.cloud";

Node.js の REST API を使用して PDF ドキュメントに署名する

以下に示す簡単な手順に従って、クラウド上で PDF ドキュメントに署名できます。

ドキュメントをアップロードする

まず、以下のコード例を使用して、PDF ドキュメントをクラウドにアップロードします。

// このコード例は、PDF ファイルをクラウドにアップロードする方法を示しています。
// ローカル/ディスクからIOStreamでファイルを開きます。
var resourcesFolder = 'C:\\Files\\Signature\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // FileApi を構築する
  var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
  // ファイルをアップロードする
  var request = new groupdocs_signature_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  fileApi.uploadFile(request);
});

その結果、アップロードされた PDF ファイルは、クラウド上のダッシュボードの ファイル セクション で利用できるようになります。

Node.js を使用してスタンプ署名を使用して PDF ドキュメントに署名する

以下の手順に従って、スタンプ署名を使用して PDF ファイルにプログラムで署名できます。

  • SignApi のインスタンスを作成します。
  • アップロードされた PDF ファイルのパスを指定します。
  • SignDigitalOptions オブジェクトを初期化し、さまざまなプロパティを設定します。
  • StampLine オブジェクトを使用してスタンプ テキストを定義します。
  • 入力ファイル、SignDigitalOptions および SaveOptions を SignSettings オブジェクトに割り当てます。
  • 最後に、SignApi.createSignatures() メソッドを使用して PDF に署名します。

次のコード例は、Node.js の REST API を使用してスタンプ署名で PDF ドキュメントに署名する方法を示しています。

// このコード例は、スタンプ署名を使用して PDF ドキュメントに署名する方法を示します。
// APIのインスタンスを作成する
let signApi = groupdocs_signature_cloud.SignApi.fromKeys(clientId, clientSecret);

// 入力ファイルパス
let fileInfo = new groupdocs_signature_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// 署名スタンプのオプションを定義する
let opts = new groupdocs_signature_cloud.SignStampOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Stamp;

// ページ上のスタンプの位置とサイズを設定する
opts.left = 200;
opts.top = 400;
opts.width = 300;
opts.height = 300;
opts.locationMeasureType = groupdocs_signature_cloud.SignTextOptions.LocationMeasureTypeEnum.Pixels;
opts.sizeMeasureType = groupdocs_signature_cloud.SignTextOptions.SizeMeasureTypeEnum.Pixels;
opts.rotationAngle = 0;
opts.horizontalAlignment = groupdocs_signature_cloud.SignTextOptions.HorizontalAlignmentEnum.None;
opts.verticalAlignment = groupdocs_signature_cloud.SignTextOptions.VerticalAlignmentEnum.None;

// パディングを追加する
opts.margin = new groupdocs_signature_cloud.Padding();
opts.margin.all = 5;
opts.marginMeasureType = groupdocs_signature_cloud.SignTextOptions.MarginMeasureTypeEnum.Pixels;

// スタンプの外観を設定する
opts.background色 = new groupdocs_signature_cloud.色();
opts.background色.web = "DarkOrange";
opts.background色CropType = groupdocs_signature_cloud.SignStampOptions.Background色CropTypeEnum.OuterArea;
opts.backgroundImageCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundImageCropTypeEnum.InnerArea;

// 1 番目のアウトライン テキストの外観を定義する
let outline1 = new groupdocs_signature_cloud.StampLine();
outline1.text = " * Electronically Signed by GroupDocs.Signature * ";
// フォント
outline1.font = new groupdocs_signature_cloud.Signatureフォント();
outline1.font.fontFamily = "Arial";
outline1.font.fontSize = 11;
outline1.font.bold = true;
outline1.textBottomIntent = 6;
// 色
outline1.text色 = new groupdocs_signature_cloud.色();
outline1.text色.web = "WhiteSmoke";
outline1.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// 背景色
outline1.background色 = new groupdocs_signature_cloud.色();
outline1.background色.web = "DarkSlateBlue";
outline1.height = 22;
outline1.visible = true;

// 2 番目のアウトライン テキストの外観を定義する
let outline2 = new groupdocs_signature_cloud.StampLine();
outline2.height = 2;
outline2.background色 = new groupdocs_signature_cloud.色();
outline2.background色.web = "White";
outline2.visible = true;

// 3 番目のアウトライン テキストの外観を定義する
let outline3 = new groupdocs_signature_cloud.StampLine();
outline3.text = " * GroupDocs.Signature * ";
// フォント
outline3.font = new groupdocs_signature_cloud.Signatureフォント();
outline3.font.fontFamily = "Arial";
outline3.font.fontSize = 16;
outline3.textBottomIntent = 8;
outline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// 色
outline3.text色 = new groupdocs_signature_cloud.色();
outline3.text色.web = "DarkSlateBlue";
// 背景色
outline3.background色 = new groupdocs_signature_cloud.色();
outline3.background色.web = "White";
outline3.height = 30;
// 内枠
outline3.innerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.innerBorder.color = new groupdocs_signature_cloud.色();
outline3.innerBorder.color.web = "DarkSlateBlue";
outline3.innerBorder.style = groupdocs_signature_cloud.BorderLine.StyleEnum.Dot;
outline3.innerBorder.weight = 1.2;
// 外枠
outline3.outerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.outerBorder.color = new groupdocs_signature_cloud.色();
outline3.outerBorder.color.web = "DarkSlateBlue";
outline3.outerBorder.weight = 1.4;
outline3.visible = true;

opts.outerLines = [outline1, outline2, outline3];

// 1番目のインラインテキストを定義する
let innerline = new groupdocs_signature_cloud.StampLine();
innerline.text = "GroupDocs";

innerline.font = new groupdocs_signature_cloud.Signatureフォント();
innerline.font.fontFamily = "Times New Roman";
innerline.font.fontSize = 20;
innerline.font.bold = true;
innerline.text色 = new groupdocs_signature_cloud.色();
innerline.text色.web = "MediumVioletRed";
innerline.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline.height = 40;
innerline.visible = true;

// 2番目のインラインテキストを定義します
let innerline2 = new groupdocs_signature_cloud.StampLine();
innerline2.text = "Signature";

innerline2.font = new groupdocs_signature_cloud.Signatureフォント();
innerline2.font.fontSize = 20;
innerline2.font.bold = true;
innerline2.text色 = new groupdocs_signature_cloud.色();
innerline2.text色.web = "MediumVioletRed";
innerline2.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline2.height = 40;
innerline2.visible = true;

// 3番目のインラインテキストを定義する
let innerline3 = new groupdocs_signature_cloud.StampLine();
innerline3.text = "Cloud";

innerline3.font = new groupdocs_signature_cloud.Signatureフォント();
innerline3.font.fontSize = 20;
innerline3.font.bold = true;
innerline3.text色 = new groupdocs_signature_cloud.色();
innerline3.text色.web = "MediumVioletRed";
innerline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline3.height = 40;
innerline3.visible = true;

opts.innerLines = [innerline, innerline2, innerline3];

// スタンプを表示するページ番号
opts.page = 1;

// 署名設定を定義する
let settings = new groupdocs_signature_cloud.SignSettings();
settings.fileInfo = fileInfo;
settings.options = [opts];
settings.saveOptions = new groupdocs_signature_cloud.SaveOptions();
settings.saveOptions.outputFilePath = "signedStamp_One_page.pdf";

// 署名リクエストの作成
let request = new groupdocs_signature_cloud.CreateSignaturesRequest(settings);
// 署名の作成
let response = await signApi.createSignatures(request);
console.log("Output file link: " + response.downloadUrl);
Node.js を使用してスタンプ署名を使用して PDF ドキュメントに署名します。

Node.js を使用してスタンプ署名を使用して PDF ドキュメントに署名します。

署名付きファイルをダウンロードする

上記のコード サンプルは、署名された PDF ファイルをクラウドに保存します。次のコードサンプルを使用してダウンロードできます。

// このコード例は、署名済み PDF をクラウドからダウンロードする方法を示しています。
// FileApi を構築する
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);

// ダウンロードファイル
let request = new groupdocs_signature_cloud.DownloadFileRequest("signedStamp_One_page.pdf", myStorage);
let response = await fileApi.downloadFile(request);

// 作業フォルダーに移動
fs.writeFile("C:\\Files\\Signature\\signedStamp_One_page.pdf", response, "binary", function (err) { });

オンラインで試す

上記の API を使用して開発された、次の無料のオンライン文書署名ツールをお試しください。 https://products.groupdocs.app/signature/

結論

この記事では、次のことを学びました。

  • スタンプ署名を使用して PDF ドキュメントに署名する方法;
  • PDF ファイルをクラウドにアップロードします。
  • 署名済み PDF ファイルをクラウドからダウンロードする方法。

さらに、GroupDocs.Signature Cloud API の詳細については、ドキュメント を使用して学習できます。また、ブラウザーを通じて API を直接視覚化して操作できる API リファレンス セクションも提供しています。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。

関連項目