Подпись с помощью штампа позволяет подписывать 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-документ в облако, используя приведенный ниже пример кода:
// В этом примере кода показано, как загрузить 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-файл в облаке. Его можно загрузить с помощью следующего примера кода:
// В этом примере кода показано, как загрузить подписанный 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 и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.