在 Node.js 中使用 REST API 使用 Stamp 簽署 PDF

圖章簽名允許電子簽名 PDF 文檔,就像我們在紙質文檔上使用橡皮簽名圖章一樣。我們可以在雲上以編程方式使用自定義圖章簽名對 PDF 文檔進行簽名。在本文中,我們將學習如何使用 Node.js 中的 REST API 使用圖章簽名對 PDF 文檔進行簽名。

本文應涵蓋以下主題:

PDF 簽名 REST API 和 Node.js SDK

為了簽署 PDF 文檔,我們將使用 GroupDocs.Signature Cloud 的 Node.js SDK API。它使我們能夠創建、驗證和搜索各種類型的簽名,例如圖像、條形碼、二維碼、基於文本的簽名、數字簽名和圖章簽名。請在控制台中使用以下命令安裝它:

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;

// 定義第一個大綱文本外觀
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;

// 定義第二個大綱文本外觀
let outline2 = new groupdocs_signature_cloud.StampLine();
outline2.height = 2;
outline2.background顏色 = new groupdocs_signature_cloud.顏色();
outline2.background顏色.web = "White";
outline2.visible = true;

// 定義第三大綱文本外觀
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];

// 定義第一個內聯文本
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;

// 定義第二個內聯文本
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;

// 定義第三個內聯文本
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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看