Firma PDF con Stamp utilizzando l'API REST in Node.js

La firma del timbro consente di firmare elettronicamente i documenti PDF nello stesso modo in cui utilizziamo un timbro di firma in gomma su un documento cartaceo. Possiamo firmare documenti PDF con una firma di timbro personalizzata in modo programmatico sul cloud. In questo articolo impareremo come firmare documenti PDF con firme timbri utilizzando un’API REST in Node.js.

In questo articolo saranno trattati i seguenti argomenti:

PDF Signature REST API e Node.js SDK

Per firmare i documenti PDF, utilizzeremo l’API Node.js SDK of GroupDocs.Signature Cloud. Ci consente di creare, verificare e cercare vari tipi di firme come immagini, codici a barre, QR-Code, firme basate su testo, digitali e timbri. Si prega di installarlo utilizzando il seguente comando nella console:

npm install groupdocs-signature-cloud

Si prega di ottenere l’ID cliente e il segreto dalla dashboard prima di seguire i passaggi menzionati. Una volta che hai il tuo ID e segreto, aggiungi il codice come mostrato di seguito:

// Questo esempio di codice mostra come aggiungere l'ID client e il segreto nel codice.
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";

Firma documenti PDF utilizzando un’API REST in Node.js

Possiamo firmare documenti PDF sul cloud seguendo i semplici passaggi indicati di seguito:

Carica il documento

Innanzitutto, caricheremo il documento PDF nel cloud utilizzando l’esempio di codice fornito di seguito:

// Questo esempio di codice mostra come caricare un file PDF nel cloud.
// Apri il file in IOStream da locale/disco.
var resourcesFolder = 'C:\\Files\\Signature\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // Costruisci FileApi
  var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
  // Caricare un file
  var request = new groupdocs_signature_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  fileApi.uploadFile(request);
});

Di conseguenza, il file PDF caricato sarà disponibile nella sezione file della dashboard sul cloud.

Firma documenti PDF con firme timbri utilizzando Node.js

Possiamo firmare i file PDF con le firme dei timbri a livello di codice seguendo i passaggi indicati di seguito:

  • Crea un’istanza di SignApi.
  • Fornisci il percorso del file PDF caricato.
  • Inizializza l’oggetto SignDigitalOptions e imposta varie proprietà.
  • Definisci il testo del timbro utilizzando gli oggetti StampLine.
  • Assegna file di input, SignDigitalOptions e SaveOptions all’oggetto SignSettings.
  • Infine, firma il PDF utilizzando il metodo SignApi.createSignatures().

L’esempio di codice seguente mostra come firmare un documento PDF con firme timbri utilizzando un’API REST in Node.js.

// Questo esempio di codice mostra come firmare un documento PDF con firme timbriche.
// Crea un'istanza dell'API
let signApi = groupdocs_signature_cloud.SignApi.fromKeys(clientId, clientSecret);

// Percorso del file di input
let fileInfo = new groupdocs_signature_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// Definire le opzioni del timbro del segno
let opts = new groupdocs_signature_cloud.SignStampOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Stamp;

// Impostare la posizione e le dimensioni del timbro su una pagina
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;

// Aggiungi imbottitura
opts.margin = new groupdocs_signature_cloud.Padding();
opts.margin.all = 5;
opts.marginMeasureType = groupdocs_signature_cloud.SignTextOptions.MarginMeasureTypeEnum.Pixels;

// Imposta l'aspetto del timbro
opts.backgroundColoree = new groupdocs_signature_cloud.Coloree();
opts.backgroundColoree.web = "DarkOrange";
opts.backgroundColoreeCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundColoreeCropTypeEnum.OuterArea;
opts.backgroundImageCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundImageCropTypeEnum.InnerArea;

// Definisci l'aspetto del testo del primo contorno
let outline1 = new groupdocs_signature_cloud.StampLine();
outline1.text = " * Electronically Signed by GroupDocs.Signature * ";
// Font
outline1.font = new groupdocs_signature_cloud.SignatureFont();
outline1.font.fontFamily = "Arial";
outline1.font.fontSize = 11;
outline1.font.bold = true;
outline1.textBottomIntent = 6;
// Coloree
outline1.textColoree = new groupdocs_signature_cloud.Coloree();
outline1.textColoree.web = "WhiteSmoke";
outline1.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Coloree di sfondo
outline1.backgroundColoree = new groupdocs_signature_cloud.Coloree();
outline1.backgroundColoree.web = "DarkSlateBlue";
outline1.height = 22;
outline1.visible = true;

// Definisci l'aspetto del testo del secondo contorno
let outline2 = new groupdocs_signature_cloud.StampLine();
outline2.height = 2;
outline2.backgroundColoree = new groupdocs_signature_cloud.Coloree();
outline2.backgroundColoree.web = "White";
outline2.visible = true;

// Definisci l'aspetto del testo del 3° contorno
let outline3 = new groupdocs_signature_cloud.StampLine();
outline3.text = " * GroupDocs.Signature * ";
// Font
outline3.font = new groupdocs_signature_cloud.SignatureFont();
outline3.font.fontFamily = "Arial";
outline3.font.fontSize = 16;
outline3.textBottomIntent = 8;
outline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Coloree
outline3.textColoree = new groupdocs_signature_cloud.Coloree();
outline3.textColoree.web = "DarkSlateBlue";
// Coloree di sfondo
outline3.backgroundColoree = new groupdocs_signature_cloud.Coloree();
outline3.backgroundColoree.web = "White";
outline3.height = 30;
// Bordo interno
outline3.innerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.innerBorder.color = new groupdocs_signature_cloud.Coloree();
outline3.innerBorder.color.web = "DarkSlateBlue";
outline3.innerBorder.style = groupdocs_signature_cloud.BorderLine.StyleEnum.Dot;
outline3.innerBorder.weight = 1.2;
// Confine esterno
outline3.outerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.outerBorder.color = new groupdocs_signature_cloud.Coloree();
outline3.outerBorder.color.web = "DarkSlateBlue";
outline3.outerBorder.weight = 1.4;
outline3.visible = true;

opts.outerLines = [outline1, outline2, outline3];

// Definisci il primo testo in linea
let innerline = new groupdocs_signature_cloud.StampLine();
innerline.text = "GroupDocs";

innerline.font = new groupdocs_signature_cloud.SignatureFont();
innerline.font.fontFamily = "Times New Roman";
innerline.font.fontSize = 20;
innerline.font.bold = true;
innerline.textColoree = new groupdocs_signature_cloud.Coloree();
innerline.textColoree.web = "MediumVioletRed";
innerline.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline.height = 40;
innerline.visible = true;

// Definisci il secondo testo in linea
let innerline2 = new groupdocs_signature_cloud.StampLine();
innerline2.text = "Signature";

innerline2.font = new groupdocs_signature_cloud.SignatureFont();
innerline2.font.fontSize = 20;
innerline2.font.bold = true;
innerline2.textColoree = new groupdocs_signature_cloud.Coloree();
innerline2.textColoree.web = "MediumVioletRed";
innerline2.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline2.height = 40;
innerline2.visible = true;

// Definisci il terzo testo in linea
let innerline3 = new groupdocs_signature_cloud.StampLine();
innerline3.text = "Cloud";

innerline3.font = new groupdocs_signature_cloud.SignatureFont();
innerline3.font.fontSize = 20;
innerline3.font.bold = true;
innerline3.textColoree = new groupdocs_signature_cloud.Coloree();
innerline3.textColoree.web = "MediumVioletRed";
innerline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline3.height = 40;
innerline3.visible = true;

opts.innerLines = [innerline, innerline2, innerline3];

// Pagina non dove mostrare il timbro
opts.page = 1;

// Definisci le impostazioni della firma
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";

// Crea richiesta di firma
let request = new groupdocs_signature_cloud.CreateSignaturesRequest(settings);
// Crea firme
let response = await signApi.createSignatures(request);
console.log("Output file link: " + response.downloadUrl);
Firma documenti PDF con firme timbri utilizzando Node.js.

Firma documenti PDF con firme timbri utilizzando Node.js.

Scarica il file firmato

L’esempio di codice precedente salverà il file PDF firmato sul cloud. Può essere scaricato utilizzando il seguente esempio di codice:

// Questo esempio di codice mostra come scaricare un PDF firmato dal cloud.
// Costruisci FileApi
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);

// Download file
let request = new groupdocs_signature_cloud.DownloadFileRequest("signedStamp_One_page.pdf", myStorage);
let response = await fileApi.downloadFile(request);

// Sposta nella cartella di lavoro
fs.writeFile("C:\\Files\\Signature\\signedStamp_One_page.pdf", response, "binary", function (err) { });

Prova in linea

Prova il seguente strumento di firma dei documenti online gratuito, sviluppato utilizzando l’API di cui sopra. https://products.groupdocs.app/signature/

Conclusione

In questo articolo abbiamo appreso:

  • come firmare documenti PDF con firme timbri;
  • caricare il file PDF nel cloud;
  • come scaricare un file PDF firmato dal cloud.

Inoltre, puoi saperne di più su GroupDocs.Signature Cloud API utilizzando la documentazione. Forniamo anche una sezione API Reference che consente di visualizzare e interagire con le nostre API direttamente tramite il browser. In caso di qualsiasi ambiguità, non esitate a contattarci sul forum.

Guarda anche