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

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

عند إضافة توقيع إلى ملفات PDF، من الممكن إزالته. يمكنك إزالة توقيع معين أو جميع التوقيعات في الملف. أسرع طريقة لإزالة التوقيع تزيل أيضًا حقل التوقيع، ولكن من الممكن إزالة التوقيع فقط، مع الحفاظ على حقل التوقيع حتى يمكن توقيع الملف مرة أخرى.

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

يظهر مقطع الكود التالي كيفية إزالة التوقيع الرقمي من ملف PDF.

 public static void RemoveSignature() {
        // قم بإنشاء كائن PdfFileSignature
        PdfFileSignature pdfSign = new PdfFileSignature();
        // افتح مستند PDF
        pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");
        // احصل على قائمة بأسماء التوقيعات
        List<String> sigNames = pdfSign.getSignNames();
        // أزل جميع التوقيعات من ملف PDF
        for (int index = 0; index < sigNames.size(); index++) {
            System.out.println("Removed " + sigNames.get(index));
            pdfSign.removeSignature(sigNames.get(index));
        }
        // احفظ ملف PDF المحدث
        pdfSign.save(_dataDir + "RemoveSignature_out.pdf");
    }

إزالة التوقيع لكن الاحتفاظ بحقل التوقيع

كما هو موضح أعلاه، فإن طريقة removeSignature في فئة PdfFileSignature تتيح لك إزالة حقول التوقيع من ملفات PDF. عند استخدام هذه الطريقة مع الإصدارات قبل 9.3.0، يتم إزالة كل من التوقيع وحقل التوقيع. بعض المطورين يرغبون في إزالة التوقيع فقط والاحتفاظ بحقل التوقيع حتى يمكن استخدامه لإعادة توقيع المستند. للاحتفاظ بحقل التوقيع وإزالة التوقيع فقط، يرجى استخدام مقتطف الشيفرة التالي.

 public static void RemoveSignatureButKeepField() {
        // إنشاء كائن PdfFileSignature
        PdfFileSignature pdfSign = new PdfFileSignature();

        // فتح مستند PDF
        pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");

        pdfSign.removeSignature("Signature1", false);

        // حفظ ملف PDF المحدث
        pdfSign.save(_dataDir + "RemoveSignature_out.pdf");
    }

The following example shows how to remove all signatures from fields.

public static void RemoveSignatureButKeepField2() {
        // إنشاء كائن PdfFileSignature
        PdfFileSignature pdfSign = new PdfFileSignature();

        // فتح مستند PDF
        pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");

        List<String> sigNames = pdfSign.getSignNames();
        for (String sigName : sigNames) {
            pdfSign.removeSignature(sigName, false);
        }

        // حفظ ملف PDF المحدث
        pdfSign.save(_dataDir + "RemoveSignature_out.pdf");
    }