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

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"));
        }
    }
}