Підпишіть PDF за допомогою Stamp за допомогою REST API у Node.js

Підпис печатки дозволяє електронно підписувати документи PDF так само, як ми використовуємо печатку підпису на паперовому документі. Ми можемо підписувати PDF-документи налаштованим підписом штампа програмним шляхом у хмарі. У цій статті ми дізнаємося, як підписувати PDF-документи підписами печатки за допомогою REST API у Node.js.

У цій статті будуть розглянуті такі теми:

PDF Signature REST API та Node.js SDK

Для підпису PDF документів ми будемо використовувати API Node.js SDK GroupDocs.Signature Cloud. Це дає нам змогу створювати, перевіряти та здійснювати пошук різних типів підписів, таких як зображення, штрих-код, QR-код, текстові підписи, цифрові підписи та підписи на штампі. Встановіть його за допомогою такої команди в консолі:

npm install groupdocs-signature-cloud

Будь ласка, отримайте свій ідентифікатор клієнта та секрет із інформаційної панелі, перш ніж виконувати вказані дії. Отримавши ідентифікатор і секрет, додайте код, як показано нижче:

// Цей приклад коду демонструє, як додати свій ідентифікатор клієнта та секрет у код.
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";

Підписуйте PDF-документи за допомогою REST API у Node.js

Ми можемо підписувати 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-файл буде доступний у розділі файлів інформаційної панелі в хмарі.

Підписуйте PDF-документи підписами печаток за допомогою Node.js

Ми можемо підписувати PDF-файли підписами печаток програмним шляхом, виконавши наведені нижче дії.

  • Створіть екземпляр SignApi.
  • Укажіть шлях до завантаженого файлу PDF.
  • Ініціалізуйте об’єкт SignDigitalOptions і встановіть різні властивості.
  • Визначте текст штампа за допомогою об’єктів StampLine.
  • Призначте вхідний файл, SignDigitalOptions і SaveOptions об’єкту SignSettings.
  • Нарешті, підпишіть PDF за допомогою методу SignApi.createSignatures().

У наведеному нижче прикладі коду показано, як підписати PDF-документ підписами печатки за допомогою REST API у Node.js.

// У цьому прикладі коду показано, як підписати 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;

// Визначте вигляд тексту 1st Outline
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);
Підписуйте PDF-документи підписами печаток за допомогою Node.js.

Підписуйте PDF-документи підписами печаток за допомогою Node.js.

Завантажте підписаний файл

Наведений вище зразок коду збереже підписаний 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 Reference, який дозволяє візуалізувати наші API та взаємодіяти з ними безпосередньо через браузер. У разі будь-яких неясностей зв’яжіться з нами на форумі.

Дивись також