Tambahkan Tanda Tangan di File PDF
Tambahkan Tanda Tangan Digital di File PDF (facades)
Kelas PdfFileSignature memungkinkan Anda untuk menambahkan tanda tangan di file PDF. Anda perlu membuat objek dari kelas PdfFileSignature menggunakan file PDF input dan output. Anda juga perlu membuat objek Rectangle di mana Anda ingin menambahkan tanda tangan dan untuk mengatur tampilan, Anda dapat menentukan gambar menggunakan properti setSignatureAppearance dari objek PdfFileSignature.
Aspose.Pdf.Facades juga menyediakan berbagai jenis tanda tangan seperti PKCS#1, PKCS#7, dan PKCS#7Detached. Untuk membuat tanda tangan dari jenis tertentu, Anda perlu membuat objek dari kelas tertentu seperti PKCS1, PKCS7, atau PKCS7Detached menggunakan file sertifikat dan kata sandi.
Setelah objek dari jenis tanda tangan tertentu dibuat, Anda dapat menggunakan metode sign dari kelas PdfFileSignature untuk menandatangani PDF dan meneruskan objek tanda tangan tertentu ke kelas ini. Anda juga dapat menentukan atribut lain untuk metode ini. Terakhir, Anda perlu menyimpan PDF yang telah ditandatangani menggunakan metode save dari kelas PdfFileSignature. Cuplikan kode berikut menunjukkan cara menambahkan tanda tangan pada file PDF.
public static void AddPdfFileSignature() {
PdfFileSignature pdfSign = new PdfFileSignature();
pdfSign.bindPdf(_dataDir + "sample01.pdf");
// Buat persegi panjang untuk lokasi tanda tangan
java.awt.Rectangle rect = new java.awt.Rectangle(10, 10, 300, 50);
// Atur tampilan tanda tangan
pdfSign.setSignatureAppearance(_dataDir + "aspose-logo.png");
// Buat salah satu dari tiga jenis tanda tangan
PKCS1 signature = new PKCS1(_dataDir + "test01.pfx", "Aspose2021"); // PKCS#1
pdfSign.sign(1, "Saya penulis dokumen", "test01@aspose-pdf-demo.local", "Aspose Pdf Demo, Australia", true, rect,
signature);
// Simpan file PDF keluaran
pdfSign.save(_dataDir + "DigitallySign.pdf");
}
Contoh kode berikut menunjukkan kemampuan untuk menandatangani dokumen dengan dua tanda tangan. Dalam contoh kami, kami meletakkan tanda tangan pertama pada halaman pertama, dan yang kedua pada halaman kedua. Anda dapat menentukan halaman yang Anda butuhkan.
public static void AddTwoSignature() {
PdfFileSignature pdfSign = new PdfFileSignature();
// Tandatangani dengan tanda tangan pertama
pdfSign.bindPdf(_dataDir + "sample01.pdf");
// Buat persegi panjang untuk lokasi tanda tangan pertama
java.awt.Rectangle rect1 = new java.awt.Rectangle(10, 10, 300, 50);
// Buat objek tanda tangan pertama
PKCS1 signature1 = new PKCS1(_dataDir + "test01.pfx", "Aspose2021"); // PKCS#1
pdfSign.sign(1, "Saya adalah penulis dokumen", "test@aspose-pdf-demo.local", "Aspose Pdf Demo, Australia", true, rect1,
signature1);
pdfSign.save(_dataDir + "DigitallySign.pdf");
// Tandatangani dengan tanda tangan kedua
pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");
// Buat persegi panjang untuk lokasi tanda tangan kedua
java.awt.Rectangle rect2 = new java.awt.Rectangle(10, 10, 300, 50);
// Buat objek tanda tangan kedua
PKCS1 signature2 = new PKCS1(_dataDir + "test02.pfx", "Aspose2021"); // PKCS#1
pdfSign.sign(2, "Saya adalah peninjau dokumen", "test02@aspose-pdf-demo.local", "Aspose Pdf Demo, Australia", true,
rect2, signature2);
// Simpan file PDF keluaran
pdfSign.save(_dataDir + "DigitallySign.pdf");
}
Untuk dokumen dengan formulir atau acroforms yang perlu ditandatangani, lihat contoh berikut. Anda perlu membuat objek dari kelas PdfFileSignature menggunakan file PDF input dan output. Gunakan bindPdf untuk mengikat. Buat tanda tangan dengan kemampuan untuk menambahkan properti yang diperlukan. Dalam contoh kami, mereka adalah ‘Reason’ dan ‘CustomAppearance’.
public static void AddPdfFileSignatureField() {
PdfFileSignature pdfSign = new PdfFileSignature();
pdfSign.bindPdf(_dataDir + "sample02.pdf");
// Buat salah satu dari tiga jenis tanda tangan
PKCS1 signature = new PKCS1(_dataDir + "test02.pfx", "Aspose2021");
signature.setReason("Tanda tangan sebagai Penulis");
SignatureCustomAppearance sca = new SignatureCustomAppearance();
signature.setCustomAppearance(sca);
sca.setFontSize(6);
sca.setFontFamilyName("Calibri");
// PKCS#1
pdfSign.sign("Signature1", signature);
// Simpan file PDF keluaran
pdfSign.save(_dataDir + "DigitallySign.pdf");
}
Jika dokumen kami memiliki dua bidang, algoritma untuk menandatanganinya mirip dengan contoh pertama.
public static void AddPdfFileSignatureField2() {
PdfFileSignature pdfSign = new PdfFileSignature();
pdfSign.bindPdf(_dataDir + "sample03.pdf");
// Buat salah satu dari tiga jenis tanda tangan
PKCS1 signature1 = new PKCS1(_dataDir + "test01.pfx", "Aspose2021");
SignatureCustomAppearance sca = new SignatureCustomAppearance();
signature1.setCustomAppearance(sca);
sca.setFontSize(6);
sca.setFontFamilyName("Calibri");
signature1.setReason("Tanda tangan sebagai Penulis"); // PKCS#1
pdfSign.sign("Signature1", signature1);
// Simpan file PDF keluaran
pdfSign.save(_dataDir + "DigitallySign.pdf");
pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");
// Buat salah satu dari tiga jenis tanda tangan
PKCS1 signature2 = new PKCS1(_dataDir + "test02.pfx", "Aspose2021");
signature2.setReason("Tanda tangan sebagai Peninjau"); // PKCS#1
signature2.setCustomAppearance(sca);
pdfSign.sign("Signature2", signature2);
// Simpan file PDF keluaran
pdfSign.save(_dataDir + "DigitallySign.pdf");
}