Node.js'de REST API kullanarak PDF'yi Stamp ile imzalayın

Damga imzası, kağıt belge üzerinde lastik imza damgası kullandığımız gibi, PDF belgelerinin elektronik olarak imzalanmasına olanak tanır. PDF belgelerini bulut üzerinde programlı olarak özelleştirilmiş bir kaşe imzasıyla imzalayabiliriz. Bu yazıda, Node.js’de bir REST API kullanarak PDF belgelerini damga imzalarıyla nasıl imzalayacağımızı öğreneceğiz.

Bu yazıda aşağıdaki konular ele alınacaktır:

PDF Signature REST API ve Node.js SDK

PDF belgelerini imzalamak için GroupDocs.Signature Cloud]2 API’sinin [Node.js SDK’sını] kullanacağız. Görüntü, ‎barkod, QR-Kodu, metin tabanlı, dijital ve damga imzaları gibi çeşitli imza türlerini oluşturmamızı, doğrulamamızı ve aramamızı sağlar. Lütfen konsolda aşağıdaki komutu kullanarak kurun:

npm install groupdocs-signature-cloud

Belirtilen adımları izlemeden önce lütfen panodan Müşteri Kimliğinizi ve Sırrınızı alın. Kimliğinizi ve sırrınızı aldıktan sonra, kodu aşağıda gösterildiği gibi ekleyin:

// Bu kod örneği, İstemci Kimliğinizi ve Sırrınızı koda nasıl ekleyeceğinizi gösterir.
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";

Node.js’de bir REST API kullanarak PDF Belgelerini İmzalayın

Aşağıda verilen basit adımları izleyerek PDF belgelerini bulutta imzalayabiliriz:

Belgeyi Yükle

Öncelikle aşağıda verilen kod örneğini kullanarak PDF belgesini buluta yükleyeceğiz:

// Bu kod örneği, bir PDF dosyasının buluta nasıl yükleneceğini gösterir.
// Dosyayı IOStream'de yerel/diskten açın.
var resourcesFolder = 'C:\\Files\\Signature\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // FileApi'yi Oluştur
  var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
  // Dosya yükleme
  var request = new groupdocs_signature_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  fileApi.uploadFile(request);
});

Sonuç olarak, yüklenen PDF dosyası bulut üzerindeki kontrol panelinin dosyalar bölümünde mevcut olacaktır.

Node.js kullanarak PDF Belgelerini Damga İmzalarıyla İmzalayın

Aşağıda verilen adımları izleyerek PDF dosyalarını programlı olarak damga imzalarıyla imzalayabiliriz:

  • SignApi’nin bir örneğini oluşturun.
  • Yüklenen PDF dosya yolunu sağlayın.
  • SignDigitalOptions nesnesini başlatın ve çeşitli özellikleri ayarlayın.
  • StampLine nesnelerini kullanarak damga metnini tanımlayın.
  • Giriş dosyası, SignDigitalOptions ve SaveOptions’ı SignSettings nesnesine atayın.
  • Son olarak, SignApi.createSignatures() yöntemini kullanarak PDF’yi imzalayın.

Aşağıdaki kod örneği, Node.js’de bir REST API kullanarak bir PDF belgesinin damga imzalarıyla nasıl imzalanacağını gösterir.

// Bu kod örneği, PDF belgesinin damga imzalarıyla nasıl imzalanacağını gösterir.
// API'nin bir örneğini oluşturun
let signApi = groupdocs_signature_cloud.SignApi.fromKeys(clientId, clientSecret);

// Giriş dosyası yolu
let fileInfo = new groupdocs_signature_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// İşaret damgası seçeneklerini tanımlayın
let opts = new groupdocs_signature_cloud.SignStampOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Stamp;

// Bir sayfada damga konumunu ve boyutunu ayarlama
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;

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

// Damga görünümünü ayarla
opts.backgroundRenk = new groupdocs_signature_cloud.Renk();
opts.backgroundRenk.web = "DarkOrange";
opts.backgroundRenkCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundRenkCropTypeEnum.OuterArea;
opts.backgroundImageCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundImageCropTypeEnum.InnerArea;

// 1. Anahat metin görünümünü tanımla
let outline1 = new groupdocs_signature_cloud.StampLine();
outline1.text = " * Electronically Signed by GroupDocs.Signature * ";
// Yazı tipi
outline1.font = new groupdocs_signature_cloud.SignatureYazı tipi();
outline1.font.fontFamily = "Arial";
outline1.font.fontSize = 11;
outline1.font.bold = true;
outline1.textBottomIntent = 6;
// Renk
outline1.textRenk = new groupdocs_signature_cloud.Renk();
outline1.textRenk.web = "WhiteSmoke";
outline1.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Arka plan rengi
outline1.backgroundRenk = new groupdocs_signature_cloud.Renk();
outline1.backgroundRenk.web = "DarkSlateBlue";
outline1.height = 22;
outline1.visible = true;

// 2. Anahat metni görünümünü tanımlayın
let outline2 = new groupdocs_signature_cloud.StampLine();
outline2.height = 2;
outline2.backgroundRenk = new groupdocs_signature_cloud.Renk();
outline2.backgroundRenk.web = "White";
outline2.visible = true;

// 3. Anahat metni görünümünü tanımlayın
let outline3 = new groupdocs_signature_cloud.StampLine();
outline3.text = " * GroupDocs.Signature * ";
// Yazı tipi
outline3.font = new groupdocs_signature_cloud.SignatureYazı tipi();
outline3.font.fontFamily = "Arial";
outline3.font.fontSize = 16;
outline3.textBottomIntent = 8;
outline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Renk
outline3.textRenk = new groupdocs_signature_cloud.Renk();
outline3.textRenk.web = "DarkSlateBlue";
// Arka plan rengi
outline3.backgroundRenk = new groupdocs_signature_cloud.Renk();
outline3.backgroundRenk.web = "White";
outline3.height = 30;
// İç kenarlık
outline3.innerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.innerBorder.color = new groupdocs_signature_cloud.Renk();
outline3.innerBorder.color.web = "DarkSlateBlue";
outline3.innerBorder.style = groupdocs_signature_cloud.BorderLine.StyleEnum.Dot;
outline3.innerBorder.weight = 1.2;
// dış sınır
outline3.outerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.outerBorder.color = new groupdocs_signature_cloud.Renk();
outline3.outerBorder.color.web = "DarkSlateBlue";
outline3.outerBorder.weight = 1.4;
outline3.visible = true;

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

// 1. satır içi metni tanımla
let innerline = new groupdocs_signature_cloud.StampLine();
innerline.text = "GroupDocs";

innerline.font = new groupdocs_signature_cloud.SignatureYazı tipi();
innerline.font.fontFamily = "Times New Roman";
innerline.font.fontSize = 20;
innerline.font.bold = true;
innerline.textRenk = new groupdocs_signature_cloud.Renk();
innerline.textRenk.web = "MediumVioletRed";
innerline.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline.height = 40;
innerline.visible = true;

// 2. satır içi metni tanımla
let innerline2 = new groupdocs_signature_cloud.StampLine();
innerline2.text = "Signature";

innerline2.font = new groupdocs_signature_cloud.SignatureYazı tipi();
innerline2.font.fontSize = 20;
innerline2.font.bold = true;
innerline2.textRenk = new groupdocs_signature_cloud.Renk();
innerline2.textRenk.web = "MediumVioletRed";
innerline2.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline2.height = 40;
innerline2.visible = true;

// 3. satır içi metni tanımla
let innerline3 = new groupdocs_signature_cloud.StampLine();
innerline3.text = "Cloud";

innerline3.font = new groupdocs_signature_cloud.SignatureYazı tipi();
innerline3.font.fontSize = 20;
innerline3.font.bold = true;
innerline3.textRenk = new groupdocs_signature_cloud.Renk();
innerline3.textRenk.web = "MediumVioletRed";
innerline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline3.height = 40;
innerline3.visible = true;

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

// Damganın gösterileceği sayfa numarası
opts.page = 1;

// Sign ayarlarını tanımlayın
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";

// İmza isteği oluştur
let request = new groupdocs_signature_cloud.CreateSignaturesRequest(settings);
// İmza oluştur
let response = await signApi.createSignatures(request);
console.log("Output file link: " + response.downloadUrl);
Node.js kullanarak PDF Belgelerini Damga İmzalarıyla İmzalayın.

Node.js kullanarak PDF Belgelerini Damga İmzalarıyla İmzalayın.

İmzalı Dosyayı İndirin

Yukarıdaki kod örneği, imzalı PDF dosyasını buluta kaydedecektir. Aşağıdaki kod örneği kullanılarak indirilebilir:

// Bu kod örneği, imzalı bir PDF'nin buluttan nasıl indirileceğini gösterir.
// FileApi'yi Oluştur
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);

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

// Çalışma klasörüne taşı
fs.writeFile("C:\\Files\\Signature\\signedStamp_One_page.pdf", response, "binary", function (err) { });

Çevrimiçi Deneyin

Lütfen yukarıdaki API kullanılarak geliştirilen aşağıdaki ücretsiz çevrimiçi belge imza aracını deneyin. https://products.groupdocs.app/signature/

Çözüm

Bu yazıda şunları öğrendik:

  • PDF belgelerini damga imzalarıyla nasıl imzalayacağınız;
  • PDF dosyasını buluta yükleyin;
  • imzalı PDF dosyası buluttan nasıl indirilir.

Ayrıca belgeleri kullanarak GroupDocs.Signature Cloud API hakkında daha fazla bilgi edinebilirsiniz. Ayrıca, API’lerimizi doğrudan tarayıcı aracılığıyla görselleştirmenize ve bunlarla etkileşimde bulunmanıza olanak tanıyan bir API Referansı bölümü de sağlıyoruz. Herhangi bir belirsizlik durumunda, lütfen forumda bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız