إضافة توقيع في ملف PDF

إضافة توقيع رقمي في ملف PDF

PdfFileSignature تتيح لك الفئة إضافة توقيع في ملف PDF. You need to create an object of PdfFileSignature class using input and output PDF files. You also need to create a Rectangle object at which you want to add the signature and in order to set appearance you can specify an image using SignatureAppearance property of the PdfFileSignature object. Aspose.Pdf.Facades also provides different kinds of signatures like PKCS#1, PKCS#7, and PKCS#7Detached. In order to create a signature of a specific type, you need to create an object of the particular class like PKCS1 , PKCS7 or PKCS7Detached using the certificate file and the password.

بمجرد إنشاء كائن من نوع توقيع معين، يمكنك استخدام طريقة Sign من فئة PdfFileSignature لتوقيع ملف PDF وتمرير كائن التوقيع المحدد إلى هذه الفئة.


```csharp
public static void AddPdfFileSignature()
        {
            PdfFileSignature pdfSign = new PdfFileSignature();
            pdfSign.BindPdf(_dataDir + "sample01.pdf");

            // إنشاء مستطيل لموقع التوقيع
            System.Drawing.Rectangle rect = new System.Drawing.Rectangle(10, 10, 300, 50);
            // تعيين مظهر التوقيع
            pdfSign.SignatureAppearance = _dataDir + "aspose-logo.png";

            // إنشاء أي نوع من أنواع التوقيعات الثلاثة
            PKCS1 signature = new PKCS1(_dataDir + "test01.pfx", "Aspose2021"); // PKCS#1

            pdfSign.Sign(1, "أنا مؤلف المستند", "test01@aspose-pdf-demo.local", "Aspose Pdf Demo, Australia", true, rect, signature);
            // حفظ ملف PDF الناتج
            pdfSign.Save(_dataDir + "DigitallySign.pdf");
        }

النموذج التالي من التعليمات البرمجية يظهر لنا القدرة على توقيع مستند بتوقيعين. في مثالنا، نضع التوقيع الأول على الصفحة الأولى، والثاني على الصفحة الثانية. يمكنك تحديد الصفحات التي تحتاجها.

 public static void AddTwoSignature()
        {
            PdfFileSignature pdfSign = new PdfFileSignature();

            // Sign with 1st signature

            pdfSign.BindPdf(_dataDir + "sample01.pdf");

            // Create a rectangle for 1st signature location
            System.Drawing.Rectangle rect1 = new System.Drawing.Rectangle(10, 10, 300, 50);

            // Create 1st signature object
            PKCS1 signature1 = new PKCS1(_dataDir + "test01.pfx", "Aspose2021"); // PKCS#1

            pdfSign.Sign(1, "أنا مؤلف المستند", "test@aspose-pdf-demo.local", "Aspose Pdf Demo, أستراليا", true, rect1, signature1);
            pdfSign.Save(_dataDir + "DigitallySign.pdf");


            // Sign with 2nd signature

            pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");

            // Create a rectangle for 2nd signature location
            System.Drawing.Rectangle rect2 = new System.Drawing.Rectangle(10, 10, 300, 50);

            // Create 2nd signature object
            PKCS1 signature2 = new PKCS1(_dataDir + "test02.pfx", "Aspose2021"); // PKCS#1

            pdfSign.Sign(2, "أنا مراجع المستند", "test02@aspose-pdf-demo.local", "Aspose Pdf Demo, أستراليا", true, rect2, signature2);

            // Save output PDF file
            pdfSign.Save(_dataDir + "DigitallySign.pdf");
        }

For a document with forms or acroforms that needs to be signed, see the following example. تحتاج إلى إنشاء كائن من فئة PdfFileSignature باستخدام ملفات PDF المدخلة والمخرجة. استخدم BindPdf للربط. قم بإنشاء توقيع مع القدرة على إضافة الخصائص المطلوبة. في مثالنا هم ‘Reason’ و ‘CustomAppearance’.

 public static void AddPdfFileSignatureField()
        {
            PdfFileSignature pdfSign = new PdfFileSignature();
            pdfSign.BindPdf(_dataDir + "sample02.pdf");

            // Create any of the three signature types
            PKCS1 signature = new PKCS1(_dataDir + "test02.pfx", "Aspose2021")
            {
                Reason = "Sign as Author",
                CustomAppearance = new SignatureCustomAppearance
                {
                    FontSize = 6,
                    FontFamilyName = "Calibri"
                }
            }; // PKCS#1
            pdfSign.Sign("Signature1", signature);
            // Save output PDF file
            pdfSign.Save(_dataDir + "DigitallySign.pdf");
        }

إذا كانت مستندنا يحتوي على حقلين، فإن الخوارزمية لتوقيعه تشبه المثال الأول.

public static void AddPdfFileSignatureField2()
        {
            PdfFileSignature pdfSign = new PdfFileSignature();
            pdfSign.BindPdf(_dataDir + "sample03.pdf");

            // إنشاء أي من أنواع التوقيع الثلاثة
            PKCS1 signature1 = new PKCS1(_dataDir + "test01.pfx", "Aspose2021")
            {
                Reason = "التوقيع كمؤلف",
                CustomAppearance = new SignatureCustomAppearance
                {
                    FontSize = 6
                }
            }; // PKCS#1
            pdfSign.Sign("Signature1", signature1);
            // حفظ ملف PDF الناتج
            pdfSign.Save(_dataDir + "DigitallySign.pdf");

            pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");

            // إنشاء أي من أنواع التوقيع الثلاثة
            PKCS1 signature2 = new PKCS1(_dataDir + "test02.pfx", "Aspose2021")
            {
                Reason = "التوقيع كمراجع",
                CustomAppearance = new SignatureCustomAppearance
                {
                    FontSize = 6
                }
            }; // PKCS#1
            pdfSign.Sign("Signature2", signature2);
            // حفظ ملف PDF الناتج
            pdfSign.Save(_dataDir + "DigitallySign.pdf");
        }