Menambahkan tanda tangan digital atau menandatangani PDF secara digital dalam C#
Aspose.PDF untuk .NET mendukung fitur untuk menandatangani digital file PDF menggunakan kelas SignatureField. Anda juga dapat mensertifikasi file PDF dengan PKCS12-Certificate. Sesuatu yang serupa dengan Menambahkan Tanda Tangan dan Keamanan di Adobe Acrobat.
Ketika menandatangani dokumen PDF menggunakan tanda tangan, Anda pada dasarnya mengkonfirmasi isi dokumen “apa adanya”. Akibatnya, perubahan lain yang dibuat setelahnya akan membatalkan tanda tangan dan dengan demikian, Anda akan tahu jika dokumen tersebut telah diubah. Sedangkan, mensertifikasi dokumen terlebih dahulu memungkinkan Anda untuk menentukan perubahan apa yang dapat dilakukan pengguna pada dokumen tanpa membatalkan sertifikasi.
Dengan kata lain, dokumen tersebut masih dianggap mempertahankan integritasnya dan penerima masih dapat mempercayai dokumen tersebut. Untuk detail lebih lanjut, silakan kunjungi Sertifikasi dan penandatanganan PDF. Secara umum, mensertifikasi dokumen dapat dibandingkan dengan menandatangani kode sebuah eksekutabel .NET.
Potongan kode berikut juga bekerja dengan perpustakaan Aspose.PDF.Drawing. Potongan kode berikut juga bekerja dengan pustaka Aspose.PDF.Drawing.
Fitur tanda tangan Aspose.PDF untuk .NET
Kita dapat menggunakan kelas dan metode berikut untuk penandatanganan PDF
- Kelas DocMDPSignature
- Enumerasi DocMDPAccessPermissions
- Properti IsCertified di kelas PdfFileSignature
Tandatangani PDF dengan tanda tangan digital
public static void SignDocument()
{
string inFile = System.IO.Path.Combine(_dataDir,"DigitallySign.pdf");
string outFile = System.IO.Path.Combine(_dataDir,"DigitallySign_out.pdf");
using (Document document = new Document(inFile))
{
using (PdfFileSignature signature = new PdfFileSignature(document))
{
PKCS7 pkcs = new PKCS7(@"C:\Keys\test.pfx", "Pa$$w0rd2020"); // Gunakan objek PKCS7/PKCS7Detached
signature.Sign(1, true, new System.Drawing.Rectangle(300, 100, 400, 200),pkcs);
// Simpan file PDF keluaran
signature.Save(outFile);
}
}
}
Tambahkan timestamp ke tanda tangan digital
Cara menandatangani PDF secara digital dengan timestamp
Aspose.PDF untuk .NET mendukung penandatanganan digital PDF dengan server timestamp atau layanan Web.
Untuk mencapai persyaratan ini, kelas TimestampSettings telah ditambahkan ke namespace Aspose.PDF. Silakan lihat potongan kode berikut yang mendapatkan timestamp dan menambahkannya ke dokumen PDF:
public static void SignWithTimeStampServer()
{
using (Document document = new Document(System.IO.Path.Combine(_dataDir,"SimpleResume.pdf")))
{
using (PdfFileSignature signature = new PdfFileSignature(document))
{
PKCS7 pkcs = new PKCS7(@"C:\Keys\test.pfx", "Start2020");
TimestampSettings timestampSettings = new TimestampSettings("https://freetsa.org/tsr", string.Empty); // User/Password dapat dihilangkan
pkcs.TimestampSettings = timestampSettings;
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
// Buat salah satu dari tiga jenis tanda tangan
signature.Sign(1, "Alasan Tanda Tangan", "Kontak", "Lokasi", true, rect, pkcs);
// Simpan file PDF keluaran
signature.Save(System.IO.Path.Combine(_dataDir, "DigitallySignWithTimeStamp_out.pdf"));
}
}
}