Подпишите PDF с помощью Stamp, используя REST API в Node.js

Подпись с помощью штампа позволяет подписывать PDF-документы в электронном виде так же, как мы используем резиновый штамп для подписи на бумажном документе. Мы можем программно подписывать PDF-документы с настраиваемой подписью штампа в облаке. В этой статье мы узнаем, как подписывать PDF-документы штампами подписи с помощью REST API в Node.js.

В этой статье должны быть раскрыты следующие темы:

REST API подписи PDF и 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;

// Определить внешний вид текста 2nd Outline
let outline2 = new groupdocs_signature_cloud.StampLine();
outline2.height = 2;
outline2.backgroundЦвет = new groupdocs_signature_cloud.Цвет();
outline2.backgroundЦвет.web = "White";
outline2.visible = true;

// Определить внешний вид текста 3rd Outline
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;

// Определить второй встроенный текст
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);
Подписывайте 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, который позволяет визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также