Ký PDF bằng Stamp bằng API REST trong Node.js

Chữ ký tem cho phép ký điện tử các tài liệu PDF giống như cách chúng tôi sử dụng tem chữ ký cao su trên tài liệu giấy. Chúng tôi có thể ký các tài liệu PDF bằng chữ ký đóng dấu tùy chỉnh theo chương trình trên đám mây. Trong bài viết này, chúng ta sẽ tìm hiểu cách ký tài liệu PDF bằng chữ ký đóng dấu bằng API REST trong Node.js.

Các chủ đề sau đây sẽ được đề cập trong bài viết này:

API REST Chữ ký PDF và SDK Node.js

Để ký tài liệu PDF, chúng tôi sẽ sử dụng API Node.js SDK của GroupDocs.Signature Cloud. Nó cho phép chúng tôi tạo, xác minh và tìm kiếm các loại chữ ký khác nhau như hình ảnh, ‎mã vạch, Mã QR, chữ ký dựa trên văn bản, kỹ thuật số và tem. Vui lòng cài đặt nó bằng lệnh sau trong bảng điều khiển:

npm install groupdocs-signature-cloud

Vui lòng lấy Client ID và Secret của bạn từ bảng điều khiển trước khi làm theo các bước được đề cập. Khi bạn có ID và bí mật của mình, hãy thêm mã như hình bên dưới:

// Ví dụ về mã này trình bày cách thêm Mã khách hàng và Bí mật của bạn vào mã.
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";

Ký tài liệu PDF bằng API REST trong Node.js

Chúng tôi có thể ký các tài liệu PDF trên đám mây bằng cách làm theo các bước đơn giản dưới đây:

Tải lên tài liệu

Đầu tiên, chúng tôi sẽ tải tài liệu PDF lên đám mây bằng ví dụ mã được cung cấp bên dưới:

// Ví dụ mã này trình bày cách tải tệp PDF lên đám mây.
// Mở tệp trong IOStream từ cục bộ/đĩa.
var resourcesFolder = 'C:\\Files\\Signature\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // Xây dựng tệpApi
  var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
  // Cập nhật dử liệu
  var request = new groupdocs_signature_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  fileApi.uploadFile(request);
});

Do đó, tệp PDF đã tải lên sẽ có sẵn trong phần tệp của trang tổng quan trên đám mây.

Ký tài liệu PDF bằng Chữ ký đóng dấu bằng Node.js

Chúng tôi có thể ký các tệp PDF bằng chữ ký đóng dấu theo chương trình bằng cách thực hiện theo các bước dưới đây:

  • Tạo một phiên bản của SignApi.
  • Cung cấp đường dẫn tệp PDF đã tải lên.
  • Khởi tạo đối tượng SignDigitalOptions và đặt các thuộc tính khác nhau.
  • Xác định văn bản đóng dấu bằng các đối tượng StampLine.
  • Gán tệp đầu vào, SignDigitalOptions và SaveOptions cho đối tượng SignSettings.
  • Cuối cùng, ký vào tệp PDF bằng phương pháp SignApi.createSignatures().

Ví dụ mã sau đây cho biết cách ký tài liệu PDF bằng chữ ký đóng dấu bằng API REST trong Node.js.

// Ví dụ mã này trình bày cách ký tài liệu PDF bằng chữ ký đóng dấu.
// Tạo một phiên bản của API
let signApi = groupdocs_signature_cloud.SignApi.fromKeys(clientId, clientSecret);

// Đường dẫn tệp đầu vào
let fileInfo = new groupdocs_signature_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// Xác định các tùy chọn đóng dấu
let opts = new groupdocs_signature_cloud.SignStampOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Stamp;

// Đặt vị trí và kích thước tem trên một trang
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;

// Thêm phần đệm
opts.margin = new groupdocs_signature_cloud.Padding();
opts.margin.all = 5;
opts.marginMeasureType = groupdocs_signature_cloud.SignTextOptions.MarginMeasureTypeEnum.Pixels;

// Đặt giao diện tem
opts.backgroundMàu sắc = new groupdocs_signature_cloud.Màu sắc();
opts.backgroundMàu sắc.web = "DarkOrange";
opts.backgroundMàu sắcCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundMàu sắcCropTypeEnum.OuterArea;
opts.backgroundImageCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundImageCropTypeEnum.InnerArea;

// Xác định giao diện văn bản Outline đầu tiên
let outline1 = new groupdocs_signature_cloud.StampLine();
outline1.text = " * Electronically Signed by GroupDocs.Signature * ";
// Nét chữ
outline1.font = new groupdocs_signature_cloud.SignatureNét chữ();
outline1.font.fontFamily = "Arial";
outline1.font.fontSize = 11;
outline1.font.bold = true;
outline1.textBottomIntent = 6;
// Màu sắc
outline1.textMàu sắc = new groupdocs_signature_cloud.Màu sắc();
outline1.textMàu sắc.web = "WhiteSmoke";
outline1.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Màu nền
outline1.backgroundMàu sắc = new groupdocs_signature_cloud.Màu sắc();
outline1.backgroundMàu sắc.web = "DarkSlateBlue";
outline1.height = 22;
outline1.visible = true;

// Xác định giao diện văn bản Outline thứ 2
let outline2 = new groupdocs_signature_cloud.StampLine();
outline2.height = 2;
outline2.backgroundMàu sắc = new groupdocs_signature_cloud.Màu sắc();
outline2.backgroundMàu sắc.web = "White";
outline2.visible = true;

// Xác định giao diện văn bản Outline thứ 3
let outline3 = new groupdocs_signature_cloud.StampLine();
outline3.text = " * GroupDocs.Signature * ";
// Nét chữ
outline3.font = new groupdocs_signature_cloud.SignatureNét chữ();
outline3.font.fontFamily = "Arial";
outline3.font.fontSize = 16;
outline3.textBottomIntent = 8;
outline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Màu sắc
outline3.textMàu sắc = new groupdocs_signature_cloud.Màu sắc();
outline3.textMàu sắc.web = "DarkSlateBlue";
// Màu nền
outline3.backgroundMàu sắc = new groupdocs_signature_cloud.Màu sắc();
outline3.backgroundMàu sắc.web = "White";
outline3.height = 30;
// biên giới bên trong
outline3.innerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.innerBorder.color = new groupdocs_signature_cloud.Màu sắc();
outline3.innerBorder.color.web = "DarkSlateBlue";
outline3.innerBorder.style = groupdocs_signature_cloud.BorderLine.StyleEnum.Dot;
outline3.innerBorder.weight = 1.2;
// viền ngoài
outline3.outerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.outerBorder.color = new groupdocs_signature_cloud.Màu sắc();
outline3.outerBorder.color.web = "DarkSlateBlue";
outline3.outerBorder.weight = 1.4;
outline3.visible = true;

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

// Xác định văn bản nội tuyến đầu tiên
let innerline = new groupdocs_signature_cloud.StampLine();
innerline.text = "GroupDocs";

innerline.font = new groupdocs_signature_cloud.SignatureNét chữ();
innerline.font.fontFamily = "Times New Roman";
innerline.font.fontSize = 20;
innerline.font.bold = true;
innerline.textMàu sắc = new groupdocs_signature_cloud.Màu sắc();
innerline.textMàu sắc.web = "MediumVioletRed";
innerline.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline.height = 40;
innerline.visible = true;

// Xác định văn bản nội tuyến thứ 2
let innerline2 = new groupdocs_signature_cloud.StampLine();
innerline2.text = "Signature";

innerline2.font = new groupdocs_signature_cloud.SignatureNét chữ();
innerline2.font.fontSize = 20;
innerline2.font.bold = true;
innerline2.textMàu sắc = new groupdocs_signature_cloud.Màu sắc();
innerline2.textMàu sắc.web = "MediumVioletRed";
innerline2.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline2.height = 40;
innerline2.visible = true;

// Xác định văn bản nội tuyến thứ 3
let innerline3 = new groupdocs_signature_cloud.StampLine();
innerline3.text = "Cloud";

innerline3.font = new groupdocs_signature_cloud.SignatureNét chữ();
innerline3.font.fontSize = 20;
innerline3.font.bold = true;
innerline3.textMàu sắc = new groupdocs_signature_cloud.Màu sắc();
innerline3.textMàu sắc.web = "MediumVioletRed";
innerline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline3.height = 40;
innerline3.visible = true;

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

// Trang không có nơi để hiển thị con dấu
opts.page = 1;

// Xác định cài đặt Dấu hiệu
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";

// Tạo yêu cầu ký tên
let request = new groupdocs_signature_cloud.CreateSignaturesRequest(settings);
// Tạo chữ ký
let response = await signApi.createSignatures(request);
console.log("Output file link: " + response.downloadUrl);
Ký tài liệu PDF bằng Chữ ký đóng dấu bằng Node.js.

Ký tài liệu PDF bằng Chữ ký đóng dấu bằng Node.js.

Tải xuống tệp đã ký

Mẫu mã trên sẽ lưu tệp PDF đã ký trên đám mây. Nó có thể được tải xuống bằng cách sử dụng mẫu mã sau:

// Ví dụ mã này trình bày cách tải xuống tệp PDF đã ký từ đám mây.
// Xây dựng tệpApi
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);

// Tải tập tin
let request = new groupdocs_signature_cloud.DownloadFileRequest("signedStamp_One_page.pdf", myStorage);
let response = await fileApi.downloadFile(request);

// Di chuyển đến thư mục làm việc
fs.writeFile("C:\\Files\\Signature\\signedStamp_One_page.pdf", response, "binary", function (err) { });

Thử trực tuyến

Vui lòng thử công cụ chữ ký tài liệu trực tuyến miễn phí sau đây, được phát triển bằng cách sử dụng API ở trên. https://products.groupdocs.app/signature/

Phần kết luận

Trong bài viết này, chúng ta đã học được:

  • cách ký tài liệu PDF bằng chữ ký đóng dấu;
  • tải tệp PDF lên đám mây;
  • cách tải xuống tệp PDF đã ký từ đám mây.

Ngoài ra, bạn có thể tìm hiểu thêm về GroupDocs.Signature Cloud API bằng cách sử dụng tài liệu. Chúng tôi cũng cung cấp phần Tham chiếu API cho phép bạn hình dung và tương tác trực tiếp với các API của chúng tôi thông qua trình duyệt. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm