Podpis stemplowy umożliwia elektroniczne podpisywanie dokumentów PDF w taki sam sposób, jak pieczątka gumowa na dokumencie papierowym. Możemy programowo podpisywać dokumenty PDF za pomocą niestandardowego podpisu stempla w chmurze. W tym artykule dowiemy się, jak podpisywać dokumenty PDF podpisami stemplowymi za pomocą REST API w Node.js.
W tym artykule zostaną omówione następujące tematy:
- Interfejs API REST podpisu PDF i zestaw SDK Node.js
- Podpisuj dokumenty PDF za pomocą interfejsu API REST w Node.js
Interfejs API REST podpisu PDF i zestaw SDK Node.js
Do podpisywania dokumentów PDF będziemy używać Node.js SDK of GroupDocs.Signature Cloud API. Pozwala nam tworzyć, weryfikować i wyszukiwać różnego rodzaju podpisy, takie jak podpisy graficzne, kody kreskowe, QR-Code, tekstowe, cyfrowe i pieczątkowe. Zainstaluj go za pomocą następującego polecenia w konsoli:
npm install groupdocs-signature-cloud
Proszę uzyskaj swój identyfikator klienta i klucz tajny z pulpitu nawigacyjnego przed wykonaniem wspomnianych kroków. Po uzyskaniu identyfikatora i tajnego kodu dodaj kod, jak pokazano poniżej:
// Ten przykład kodu pokazuje, jak dodać identyfikator klienta i klucz tajny do kodu.
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";
Podpisuj dokumenty PDF za pomocą interfejsu API REST w Node.js
Możemy podpisywać dokumenty PDF w chmurze, wykonując proste czynności podane poniżej:
- Prześlij plik do chmury
- Podpisuj dokumenty PDF podpisami stemplowymi
- Pobierz podpisany plik
Prześlij dokument
Najpierw prześlemy dokument PDF do chmury, korzystając z przykładowego kodu podanego poniżej:
// Ten przykład kodu demonstruje, jak przekazać plik PDF do chmury.
// Otwórz plik w IOStream z pliku local/disc.
var resourcesFolder = 'C:\\Files\\Signature\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
// Skonstruuj FileApi
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
// Przesyłanie pliku
var request = new groupdocs_signature_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
fileApi.uploadFile(request);
});
W rezultacie przesłany plik PDF będzie dostępny w sekcji plików pulpitu nawigacyjnego w chmurze.
Podpisuj dokumenty PDF podpisami stemplowymi za pomocą Node.js
Możemy programowo podpisywać pliki PDF podpisami stemplowymi, wykonując czynności podane poniżej:
- Utwórz wystąpienie SignApi.
- Podaj ścieżkę przesłanego pliku PDF.
- Zainicjuj obiekt SignDigitalOptions i ustaw różne właściwości.
- Zdefiniuj tekst stempla za pomocą obiektów StampLine.
- Przypisz plik wejściowy, SignDigitalOptions i SaveOptions do obiektu SignSettings.
- Na koniec podpisz plik PDF za pomocą metody SignApi.createSignatures().
Poniższy przykład kodu pokazuje, jak podpisać dokument PDF za pomocą podpisów stempli przy użyciu interfejsu API REST w Node.js.
// Ten przykład kodu demonstruje sposób podpisywania dokumentu PDF za pomocą podpisów pieczęci.
// Utwórz instancję interfejsu API
let signApi = groupdocs_signature_cloud.SignApi.fromKeys(clientId, clientSecret);
// Wprowadź ścieżkę pliku
let fileInfo = new groupdocs_signature_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";
// Zdefiniuj opcje stempla podpisu
let opts = new groupdocs_signature_cloud.SignStampOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Stamp;
// Ustaw pozycję i rozmiar stempla na stronie
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;
// Dodaj wypełnienie
opts.margin = new groupdocs_signature_cloud.Padding();
opts.margin.all = 5;
opts.marginMeasureType = groupdocs_signature_cloud.SignTextOptions.MarginMeasureTypeEnum.Pixels;
// Ustaw wygląd stempla
opts.backgroundKolor = new groupdocs_signature_cloud.Kolor();
opts.backgroundKolor.web = "DarkOrange";
opts.backgroundKolorCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundKolorCropTypeEnum.OuterArea;
opts.backgroundImageCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundImageCropTypeEnum.InnerArea;
// Zdefiniuj pierwszy wygląd tekstu konspektu
let outline1 = new groupdocs_signature_cloud.StampLine();
outline1.text = " * Electronically Signed by GroupDocs.Signature * ";
// Czcionka
outline1.font = new groupdocs_signature_cloud.SignatureCzcionka();
outline1.font.fontFamily = "Arial";
outline1.font.fontSize = 11;
outline1.font.bold = true;
outline1.textBottomIntent = 6;
// Kolor
outline1.textKolor = new groupdocs_signature_cloud.Kolor();
outline1.textKolor.web = "WhiteSmoke";
outline1.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Kolor tła
outline1.backgroundKolor = new groupdocs_signature_cloud.Kolor();
outline1.backgroundKolor.web = "DarkSlateBlue";
outline1.height = 22;
outline1.visible = true;
// Zdefiniuj wygląd tekstu drugiego konspektu
let outline2 = new groupdocs_signature_cloud.StampLine();
outline2.height = 2;
outline2.backgroundKolor = new groupdocs_signature_cloud.Kolor();
outline2.backgroundKolor.web = "White";
outline2.visible = true;
// Zdefiniuj wygląd tekstu trzeciego konspektu
let outline3 = new groupdocs_signature_cloud.StampLine();
outline3.text = " * GroupDocs.Signature * ";
// Czcionka
outline3.font = new groupdocs_signature_cloud.SignatureCzcionka();
outline3.font.fontFamily = "Arial";
outline3.font.fontSize = 16;
outline3.textBottomIntent = 8;
outline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Kolor
outline3.textKolor = new groupdocs_signature_cloud.Kolor();
outline3.textKolor.web = "DarkSlateBlue";
// Kolor tła
outline3.backgroundKolor = new groupdocs_signature_cloud.Kolor();
outline3.backgroundKolor.web = "White";
outline3.height = 30;
// Wewnętrzna granica
outline3.innerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.innerBorder.color = new groupdocs_signature_cloud.Kolor();
outline3.innerBorder.color.web = "DarkSlateBlue";
outline3.innerBorder.style = groupdocs_signature_cloud.BorderLine.StyleEnum.Dot;
outline3.innerBorder.weight = 1.2;
// Granica zewnętrzna
outline3.outerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.outerBorder.color = new groupdocs_signature_cloud.Kolor();
outline3.outerBorder.color.web = "DarkSlateBlue";
outline3.outerBorder.weight = 1.4;
outline3.visible = true;
opts.outerLines = [outline1, outline2, outline3];
// Zdefiniuj pierwszy tekst wbudowany
let innerline = new groupdocs_signature_cloud.StampLine();
innerline.text = "GroupDocs";
innerline.font = new groupdocs_signature_cloud.SignatureCzcionka();
innerline.font.fontFamily = "Times New Roman";
innerline.font.fontSize = 20;
innerline.font.bold = true;
innerline.textKolor = new groupdocs_signature_cloud.Kolor();
innerline.textKolor.web = "MediumVioletRed";
innerline.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline.height = 40;
innerline.visible = true;
// Zdefiniuj drugi tekst wbudowany
let innerline2 = new groupdocs_signature_cloud.StampLine();
innerline2.text = "Signature";
innerline2.font = new groupdocs_signature_cloud.SignatureCzcionka();
innerline2.font.fontSize = 20;
innerline2.font.bold = true;
innerline2.textKolor = new groupdocs_signature_cloud.Kolor();
innerline2.textKolor.web = "MediumVioletRed";
innerline2.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline2.height = 40;
innerline2.visible = true;
// Zdefiniuj trzeci tekst wbudowany
let innerline3 = new groupdocs_signature_cloud.StampLine();
innerline3.text = "Cloud";
innerline3.font = new groupdocs_signature_cloud.SignatureCzcionka();
innerline3.font.fontSize = 20;
innerline3.font.bold = true;
innerline3.textKolor = new groupdocs_signature_cloud.Kolor();
innerline3.textKolor.web = "MediumVioletRed";
innerline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline3.height = 40;
innerline3.visible = true;
opts.innerLines = [innerline, innerline2, innerline3];
// Strona nie ma gdzie pokazać znaczka
opts.page = 1;
// Zdefiniuj ustawienia Znaku
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";
// Utwórz żądanie podpisania
let request = new groupdocs_signature_cloud.CreateSignaturesRequest(settings);
// Twórz podpisy
let response = await signApi.createSignatures(request);
console.log("Output file link: " + response.downloadUrl);
Pobierz podpisany plik
Powyższy przykładowy kod zapisze podpisany plik PDF w chmurze. Można go pobrać, korzystając z następującego przykładowego kodu:
// Ten przykład kodu pokazuje, jak pobrać podpisany plik PDF z chmury.
// Skonstruuj FileApi
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
// Pobieranie pliku
let request = new groupdocs_signature_cloud.DownloadFileRequest("signedStamp_One_page.pdf", myStorage);
let response = await fileApi.downloadFile(request);
// Przenieś do folderu roboczego
fs.writeFile("C:\\Files\\Signature\\signedStamp_One_page.pdf", response, "binary", function (err) { });
Wypróbuj online
Wypróbuj następujące bezpłatne narzędzie do podpisywania dokumentów online, które zostało opracowane przy użyciu powyższego interfejsu API. https://products.groupdocs.app/signature/
Wniosek
W tym artykule dowiedzieliśmy się:
- jak podpisywać dokumenty PDF podpisami stemplowymi;
- przesłać plik PDF do chmury;
- jak pobrać podpisany plik PDF z chmury.
Poza tym możesz dowiedzieć się więcej o GroupDocs.Signature Cloud API korzystając z dokumentacji. Udostępniamy również sekcję Informacje o interfejsach API, która umożliwia wizualizację naszych interfejsów API i interakcję z nimi bezpośrednio w przeglądarce. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.