Podpisz plik PDF za pomocą stempla przy użyciu interfejsu API REST w Node.js

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

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 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);
Podpisuj dokumenty PDF podpisami stemplowymi za pomocą Node.js.

Podpisuj dokumenty PDF podpisami stemplowymi za pomocą Node.js.

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.

Zobacz też