Tanda tangan stempel memungkinkan penandatanganan dokumen PDF secara elektronik dengan cara yang sama seperti kita menggunakan stempel tanda tangan karet pada dokumen kertas. Kami dapat menandatangani dokumen PDF dengan tanda tangan stempel khusus secara terprogram di cloud. Pada artikel ini, kita akan mempelajari cara menandatangani dokumen PDF dengan tanda tangan stempel menggunakan REST API di Node.js.
Topik-topik berikut akan dibahas dalam artikel ini:
PDF Signature REST API dan Node.js SDK
Untuk menandatangani dokumen PDF, kami akan menggunakan Node.js SDK of GroupDocs.Signature Cloud API. Ini memungkinkan kami untuk membuat, memverifikasi, dan mencari berbagai jenis tanda tangan seperti tanda tangan gambar, barcode, QR-Code, berbasis teks, digital, dan stempel. Silakan instal menggunakan perintah berikut di konsol:
npm install groupdocs-signature-cloud
Harap dapatkan ID dan Rahasia Klien Anda dari dasbor sebelum mengikuti langkah-langkah yang disebutkan. Setelah Anda memiliki ID dan rahasia Anda, tambahkan kode seperti yang ditunjukkan di bawah ini:
// Contoh kode ini menunjukkan cara menambahkan ID dan Rahasia Klien Anda dalam kode.
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";
Menandatangani Dokumen PDF menggunakan REST API di Node.js
Kami dapat menandatangani dokumen PDF di cloud dengan mengikuti langkah-langkah sederhana yang diberikan di bawah ini:
- Unggah file ke cloud
- Tandatangani Dokumen PDF Dengan Tanda Tangan Stempel
- Unduh file yang ditandatangani
Unggah Dokumen
Pertama, kami akan mengunggah dokumen PDF ke cloud menggunakan contoh kode di bawah ini:
// Contoh kode ini menunjukkan cara mengunggah file PDF ke cloud.
// Buka file di IOStream dari local/disc.
var resourcesFolder = 'C:\\Files\\Signature\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
// Membangun FileApi
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
// Unggah data
var request = new groupdocs_signature_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
fileApi.uploadFile(request);
});
Hasilnya, file PDF yang diunggah akan tersedia di files section dasbor di cloud.
Tandatangani Dokumen PDF dengan Tanda Tangan Stempel menggunakan Node.js
Kami dapat menandatangani file PDF dengan tanda tangan stempel secara terprogram dengan mengikuti langkah-langkah yang diberikan di bawah ini:
- Buat instance dari SignApi.
- Berikan jalur file PDF yang diunggah.
- Inisialisasi objek SignDigitalOptions dan atur berbagai properti.
- Tentukan teks stempel menggunakan objek StampLine.
- Tetapkan file input, SignDigitalOptions, dan SaveOptions ke objek SignSettings.
- Terakhir, tanda tangani PDF menggunakan metode SignApi.createSignatures().
Contoh kode berikut menunjukkan cara menandatangani dokumen PDF dengan tanda tangan stempel menggunakan REST API di Node.js.
// Contoh kode ini menunjukkan cara menandatangani dokumen PDF dengan tanda tangan stempel.
// Buat instance API
let signApi = groupdocs_signature_cloud.SignApi.fromKeys(clientId, clientSecret);
// Jalur file masukan
let fileInfo = new groupdocs_signature_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";
// Tentukan opsi stempel tanda
let opts = new groupdocs_signature_cloud.SignStampOptions();
opts.signatureType = groupdocs_signature_cloud.OptionsBase.SignatureTypeEnum.Stamp;
// Atur posisi dan ukuran stempel pada halaman
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;
// Tambahkan bantalan
opts.margin = new groupdocs_signature_cloud.Padding();
opts.margin.all = 5;
opts.marginMeasureType = groupdocs_signature_cloud.SignTextOptions.MarginMeasureTypeEnum.Pixels;
// Atur tampilan stempel
opts.backgroundWarna = new groupdocs_signature_cloud.Warna();
opts.backgroundWarna.web = "DarkOrange";
opts.backgroundWarnaCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundWarnaCropTypeEnum.OuterArea;
opts.backgroundImageCropType = groupdocs_signature_cloud.SignStampOptions.BackgroundImageCropTypeEnum.InnerArea;
// Tentukan tampilan teks Outline ke-1
let outline1 = new groupdocs_signature_cloud.StampLine();
outline1.text = " * Electronically Signed by GroupDocs.Signature * ";
// Fon
outline1.font = new groupdocs_signature_cloud.SignatureFon();
outline1.font.fontFamily = "Arial";
outline1.font.fontSize = 11;
outline1.font.bold = true;
outline1.textBottomIntent = 6;
// Warna
outline1.textWarna = new groupdocs_signature_cloud.Warna();
outline1.textWarna.web = "WhiteSmoke";
outline1.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Warna latar belakang
outline1.backgroundWarna = new groupdocs_signature_cloud.Warna();
outline1.backgroundWarna.web = "DarkSlateBlue";
outline1.height = 22;
outline1.visible = true;
// Tentukan tampilan teks Outline ke-2
let outline2 = new groupdocs_signature_cloud.StampLine();
outline2.height = 2;
outline2.backgroundWarna = new groupdocs_signature_cloud.Warna();
outline2.backgroundWarna.web = "White";
outline2.visible = true;
// Tentukan tampilan teks Outline ke-3
let outline3 = new groupdocs_signature_cloud.StampLine();
outline3.text = " * GroupDocs.Signature * ";
// Fon
outline3.font = new groupdocs_signature_cloud.SignatureFon();
outline3.font.fontFamily = "Arial";
outline3.font.fontSize = 16;
outline3.textBottomIntent = 8;
outline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.FullTextRepeat;
// Warna
outline3.textWarna = new groupdocs_signature_cloud.Warna();
outline3.textWarna.web = "DarkSlateBlue";
// Warna latar belakang
outline3.backgroundWarna = new groupdocs_signature_cloud.Warna();
outline3.backgroundWarna.web = "White";
outline3.height = 30;
// Batas dalam
outline3.innerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.innerBorder.color = new groupdocs_signature_cloud.Warna();
outline3.innerBorder.color.web = "DarkSlateBlue";
outline3.innerBorder.style = groupdocs_signature_cloud.BorderLine.StyleEnum.Dot;
outline3.innerBorder.weight = 1.2;
// Batas luar
outline3.outerBorder = new groupdocs_signature_cloud.BorderLine();
outline3.outerBorder.color = new groupdocs_signature_cloud.Warna();
outline3.outerBorder.color.web = "DarkSlateBlue";
outline3.outerBorder.weight = 1.4;
outline3.visible = true;
opts.outerLines = [outline1, outline2, outline3];
// Tentukan teks sebaris pertama
let innerline = new groupdocs_signature_cloud.StampLine();
innerline.text = "GroupDocs";
innerline.font = new groupdocs_signature_cloud.SignatureFon();
innerline.font.fontFamily = "Times New Roman";
innerline.font.fontSize = 20;
innerline.font.bold = true;
innerline.textWarna = new groupdocs_signature_cloud.Warna();
innerline.textWarna.web = "MediumVioletRed";
innerline.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline.height = 40;
innerline.visible = true;
// Tentukan teks sebaris ke-2
let innerline2 = new groupdocs_signature_cloud.StampLine();
innerline2.text = "Signature";
innerline2.font = new groupdocs_signature_cloud.SignatureFon();
innerline2.font.fontSize = 20;
innerline2.font.bold = true;
innerline2.textWarna = new groupdocs_signature_cloud.Warna();
innerline2.textWarna.web = "MediumVioletRed";
innerline2.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline2.height = 40;
innerline2.visible = true;
// Tentukan teks sebaris ke-3
let innerline3 = new groupdocs_signature_cloud.StampLine();
innerline3.text = "Cloud";
innerline3.font = new groupdocs_signature_cloud.SignatureFon();
innerline3.font.fontSize = 20;
innerline3.font.bold = true;
innerline3.textWarna = new groupdocs_signature_cloud.Warna();
innerline3.textWarna.web = "MediumVioletRed";
innerline3.textRepeatType = groupdocs_signature_cloud.StampLine.TextRepeatTypeEnum.None;
innerline3.height = 40;
innerline3.visible = true;
opts.innerLines = [innerline, innerline2, innerline3];
// Halaman tidak ada tempat untuk menunjukkan stempel
opts.page = 1;
// Tentukan pengaturan Tanda
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";
// Buat permintaan tanda
let request = new groupdocs_signature_cloud.CreateSignaturesRequest(settings);
// Buat tanda tangan
let response = await signApi.createSignatures(request);
console.log("Output file link: " + response.downloadUrl);
Unduh File yang Ditandatangani
Contoh kode di atas akan menyimpan file PDF yang ditandatangani di cloud. Itu dapat diunduh menggunakan contoh kode berikut:
// Contoh kode ini menunjukkan cara mengunduh PDF yang ditandatangani dari cloud.
// Membangun FileApi
var fileApi = groupdocs_signature_cloud.FileApi.fromConfig(config);
// Unduh berkas
let request = new groupdocs_signature_cloud.DownloadFileRequest("signedStamp_One_page.pdf", myStorage);
let response = await fileApi.downloadFile(request);
// Pindah ke folder kerja
fs.writeFile("C:\\Files\\Signature\\signedStamp_One_page.pdf", response, "binary", function (err) { });
Coba Daring
Silakan coba alat tanda tangan dokumen online gratis berikut, yang dikembangkan menggunakan API di atas. https://products.groupdocs.app/signature/
Kesimpulan
Dalam artikel ini, kita telah belajar:
- cara menandatangani dokumen PDF dengan tanda tangan stempel;
- unggah file PDF ke cloud;
- cara mengunduh file PDF yang ditandatangani dari cloud.
Selain itu, Anda dapat mempelajari lebih lanjut tentang GroupDocs.Signature Cloud API menggunakan dokumentasi. Kami juga menyediakan bagian Referensi API yang memungkinkan Anda memvisualisasikan dan berinteraksi dengan API kami secara langsung melalui browser. Jika ada ambiguitas, jangan ragu untuk menghubungi kami di forum.