在 Node.js 中使用 REST API 使用数字签名签署文档

您可以在云上以编程方式使用数字签名对文档进行电子签名。数字签名用于验证文档的真实性和完整性。它还使您能够在文档中附加代码作为签名。本文将重点介绍如何在 Node.js 中使用 REST API 对文档进行数字签名。

本文应涵盖以下主题:

文档签名 REST API 和 Node.js SDK

为了签署 PDFDOCX 文件,我将使用 GroupDocs.Signature Cloud 的 Node.js SDK API。它使您能够创建、验证和搜索各种类型的签名,例如图像、条形码、二维码、基于文本的签名、数字签名和图章签名。这些签名可以轻松应用于便携式或简单的文档、电子表格、演示文稿和受支持文件格式的图像。您可以将 API 集成到现有的 Node.js 应用程序中。它还为云 API 提供 .NET、Java、PHP、Android、Ruby 和 Python SDK 作为其文档签名家族成员

您可以在控制台中使用以下命令将 GroupDocs.Signature Cloud 安装到您的 Node.js 项目:

npm install groupdocs-signature-cloud --save

在执行上述步骤之前,请从 dashboard 获取您的 Client ID 和 Secret。获得 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 签署 Word 文档

您可以按照以下简单步骤对云端的 Word 文档进行数字签名:

上传文件

首先,使用下面给出的代码示例将Word文档上传到云端:

var resourcesFolder = 'C:\\Files\\sample.docx';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // 构建FileApi
  var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
  // 创建上传文件请求
  var request = new groupdocs_signature_cloud.UploadFileRequest("sample.docx", fileStream, myStorage);
  fileApi.uploadFile(request)
});

因此,上传的 Word 文件将在云端仪表板的 文件部分 中可用。请使用上述代码示例将证书和签名图像文件上传到云端。

使用 Node.js 签署带有数字签名的 Word 文档

您可以按照以下步骤以编程方式使用数字签名对 DOCX 文件进行签名:

  • 创建 SignApi 的实例
  • 创建 FileInfo 的实例
  • 设置DOCX文件路径
  • 创建 SignDigitalOptions 的实例
  • 将签名类型设置为数字
  • 设置 ImageFilePath 和 CertificateFilePath
  • 提供密码
  • 设置签名位置
  • 创建 SignSettings 的实例
  • 将 SignDigitalOptions 和 SaveOptions 分配给 SignSettings
  • 创建 CreateSignaturesRequest
  • 通过调用 SignApi.createSignatures() 方法获取结果

以下代码示例展示了如何使用 Node.js 中的 REST API 对 Word 文档进行数字签名。

// 初始化接口
let signApi = groupdocs_signature_cloud.SignApi.fromKeys(clientId, clientSecret);

// 创建文件信息
let fileInfo = new groupdocs_signature_cloud.FileInfo();
fileInfo.filePath = "sample.docx";

// 定义符号数字选项
let opts = new groupdocs_signature_cloud.SignDigitalOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Digital;
opts.imageFilePath = "signature.jpg";
opts.certificateFilePath = "certificate.pfx";
opts.password = "1234567890";

// 在页面上设置签名位置
opts.left = 350;
opts.top = 450;
opts.width = 200;
opts.height = 100;
opts.location_measure_type = "Pixels";
opts.size_measure_type = "Pixels";
opts.rotation_angle = 0;
opts.horizontal_alignment = "None";
opts.vertical_alignment = "None";
opts.margin = new groupdocs_signature_cloud.Padding();
opts.margin.all = 5;
opts.margin_measure_type = "Pixels";

// 设置页面显示签名
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 = "signedDigital_sample.docx";

// 创建签名请求
let request = new groupdocs_signature_cloud.CreateSignaturesRequest(settings);
let response = await signApi.createSignatures(request);

console.log("Output file link: " + response.downloadUrl);
使用 Node.js 签署带有数字签名的 Word 文档

使用 Node.js 签署带有数字签名的 Word 文档

下载签名文件

上面的代码示例将签名的 Word 文件保存在云端。您可以使用下面给出的代码示例下载它:

// 构造FileApi
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);

// 创建下载文件请求
let request = new groupdocs_signature_cloud.DownloadFileRequest("signedDigital_sample.docx", myStorage);
let response = await fileApi.downloadFile(request);

// 保存文件到工作目录
fs.writeFile("C:\\Files\\signedDigital_sample.docx", response, "binary", function (err) { });

使用 Node.js 签署带有数字签名的 PDF 文档

您可以按照以下步骤以编程方式使用数字签名对 PDF 文档进行签名:

  • 创建 SignApi 的实例
  • 创建 FileInfo 的实例
  • 设置PDF文件路径
  • 创建 SignDigitalOptions 的实例
  • 将签名类型设置为数字
  • 设置 ImageFilePath 和 CertificateFilePath
  • 提供密码
  • 创建 SignSettings 的实例
  • 将 SignDigitalOptions 和 SaveOptions 分配给 SignSettings
  • 创建 CreateSignaturesRequest
  • 通过调用 SignApi.createSignatures() 方法获取结果

以下代码示例展示了如何使用 Node.js 中的 REST API 使用数字签名对 PDF 文档进行签名。

// 初始化接口
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.SignDigitalOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Digital;
opts.imageFilePath = "signature.jpg";
opts.certificateFilePath = "certificate.pfx";
opts.password = "1234567890";
opts.allPage = true;

// 定义符号选项
let settings = new groupdocs_signature_cloud.SignSettings();
settings.fileInfo = fileInfo;
settings.options = [opts];

// 定义保存选项
settings.saveOptions = new groupdocs_signature_cloud.SaveOptions();
settings.saveOptions.outputFilePath = "signedDigital_sample.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 文档

在 Node.js 中使用 REST API 验证数字签名

您可以按照以下步骤轻松地以编程方式验证数字签名:

  • 创建 SignApi 的实例
  • 创建 FileInfo 的实例
  • 设置DOCX文件路径
  • 创建 VerifyDigitalOptions 的实例
  • 将签名类型设置为数字
  • 创建 VerifySettings 的实例
  • 将 VerifyDigitalOptions 和 FileInfo 分配给 VerifySettings
  • 创建 VerifySignaturesRequest
  • 通过调用 SignApi.verifySignatures() 方法获取结果
  • 显示结果

以下代码示例展示了如何在 Node.js 中使用 REST API 验证数字签名。

// 初始化接口
let signApi = groupdocs_signature_cloud.SignApi.fromKeys(clientId, clientSecret);

// 创建文件信息
let fileInfo = new groupdocs_signature_cloud.FileInfo();
fileInfo.filePath = "signedDigital_sample.docx";

// 定义验证选项
let opts = new groupdocs_signature_cloud.VerifyDigitalOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Digital;

// 定义验证设置
let settings = new groupdocs_signature_cloud.VerifySettings();
settings.fileInfo = fileInfo;
settings.options = [opts];

// 创建验证签名请求
let request = new groupdocs_signature_cloud.VerifySignaturesRequest(settings);
let response = await signApi.verifySignatures(request);

// 显示结果
if (response.isSuccess) {
  console.log("Successfully verified!");
}
else{
  console.log("Not verified!");
}
在 Node.js 中使用 REST API 验证数字签名

在 Node.js 中使用 REST API 验证数字签名

在线试用

请试用以下使用上述API开发的免费在线文档签名工具。 https://products.groupdocs.app/signature/

结论

在本文中,您了解了如何使用云上的数字签名对 Word 文档进行签名。您还学习了如何使用 Node.js 中的 REST API 使用数字签名对 PDF 文档进行签名。此外,您还学习了如何以编程方式将 Word 文件上传到云端,然后从云端下载签名文件。您可以使用 文档 了解有关 GroupDocs.Signature Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。

也可以看看