حماية العروض من الكتابة على Android
مقدمة
كلمة مرور الحماية من الكتابة تقيد تعديل العرض التقديمي لكنها لا تشفر محتواه. يمكن للمستخدمين تحميل وعرض عرض محمي من الكتابة بدون كلمة المرور. اعتمادًا على التطبيق، قد يكون بإمكانهم أيضًا تعديل المحتوى وحفظه باسم مختلف، لذا لا ينبغي اعتبار الحماية من الكتابة كآلية سرية.
كلمة مرور الفتح تخدم غرضًا مختلفًا: فهي تشفر العرض التقديمي وتكون مطلوبة لتحميل محتواه. لتشفير عرض تقديمي أو التحقق من صحة كلمة مرور الفتح، راجع Password-Protect Presentations.
تطبق سير العمل في هذه المقالة على كل من عروض PPT و PPTX. تستخدم الأمثلة ملفات PPTX؛ عند الحفظ إلى PPT، استخدم امتداد .ppt وتنسيق الحفظ المقابل لـ PPT.
تعيين الحماية من الكتابة على العرض التقديمي
استخدم IProtectionManager.setWriteProtection لتعيين كلمة مرور لتعديل العرض التقديمي. حفظ العرض التقديمي يُثبت إعداد الحماية.
المثال التالي يضع الحماية من الكتابة على عرض PPTX:
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
Presentation presentation = new Presentation("pres.pptx");
try {
presentation.getProtectionManager().setWriteProtection("modify_password");
presentation.save("write-protected-pres.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
تحميل عرض محمي من الكتابة
نظرًا لأن الحماية من الكتابة لا تشفر محتوى العرض التقديمي، لا يلزم كلمة مرور لتحميل العرض. كلمة المرور ذات صلة فقط عند التحقق من صلاحية تعديل العرض المحمي.
import com.aspose.slides.Presentation;
Presentation presentation = new Presentation("write-protected-pres.pptx");
try {
System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
presentation.dispose();
}
لا تقم بتمرير كلمة مرور الحماية من الكتابة إلى ILoadOptions.setPassword. هذه الطريقة تقبل كلمة مرور الفتح للمحتوى المشفر. إذا كان للعرض التقديمي كلا النوعين من الحماية، قدم كلمة مرور الفتح لتحميله وتعامل مع كلمة مرور الحماية من الكتابة بشكل منفصل.
إزالة الحماية من الكتابة من العرض التقديمي
استخدم IProtectionManager.removeWriteProtection لإزالة قيد التعديل، ثم احفظ العرض التقديمي.
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
Presentation presentation = new Presentation("write-protected-pres.pptx");
try {
presentation.getProtectionManager().removeWriteProtection();
presentation.save("write-protection-removed.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
التحقق مما إذا كان العرض محمياً من الكتابة
لفحص ملف دون إنشاء مثيل كامل من Presentation، استدعِ IPresentationFactory.getPresentationInfo وتفحص IPresentationInfo.isWriteProtected. تستخدم الطريقة NullableBool وتعيد NullableBool.True عندما تُكتشف الحماية من الكتابة.
import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.NullableBool;
import com.aspose.slides.PresentationFactory;
IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo("write-protected-pres.pptx");
if (presentationInfo.isWriteProtected() == NullableBool.True) {
System.out.println("The presentation is write protected.");
} else {
System.out.println("Write protection was not detected.");
}
الإصدار المتعدد للـ Stream من IPresentationFactory.getPresentationInfo يُقدم نفس المعلومات لعرض تقديمي مُقدم كتيار.
التحقق من صحة كلمة مرور الحماية من الكتابة
استخدم IPresentationInfo.checkWriteProtection للتحقق من صحة كلمة مرور التعديل دون تحميل العرض الكامل. تحقق أولاً من IPresentationInfo.isWriteProtected بحيث يطلب التطبيق أو يتحقق من كلمة المرور فقط عندما تكون الحماية من الكتابة موجودة.
import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.NullableBool;
import com.aspose.slides.PresentationFactory;
IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo("write-protected-pres.pptx");
if (presentationInfo.isWriteProtected() != NullableBool.True) {
System.out.println("The presentation is not write protected.");
} else if (presentationInfo.checkWriteProtection("modify_password")) {
System.out.println("The write-protection password is correct.");
} else {
System.out.println("The write-protection password is incorrect.");
}
IPresentationInfo.checkWriteProtection يتحقق فقط من كلمة مرور الحماية من الكتابة. لا يتحقق من كلمة مرور الفتح أو يحدد ما إذا كان يمكن تحميل المحتوى المشفر. على العكس، IPresentationInfo.checkPassword يتحقق فقط من كلمة مرور الفتح. إذا تم تحميل عرض تقديمي كامل مسبقًا، فإن IProtectionManager.checkWriteProtection يقدم فحص الحماية من الكتابة المكافئ عبر مدير الحماية الخاص به.
في التطبيقات الإنتاجية، لا تقم بتسجيل كلمات المرور أو تضمينها في رسائل التشخيص. تجنب محاولات التحقق المتكررة غير الضرورية، واحتفظ بكلمات المرور في الذاكرة فقط طالما كانت ضرورية.
الأسئلة الشائعة
هل تُشفّر الحماية من الكتابة عرضًا تقديميًا؟
لا. إنها تقيد التعديل ولكن تترك محتوى العرض متاحًا للتحميل والعرض.
هل كلمة مرور الحماية من الكتابة مطلوبة لفتح العرض؟
لا. فقط كلمة مرور الفتح مطلوبة لتحميل محتوى العرض المشفر.
هل يمكن للعرض أن يمتلك كلًا من كلمة مرور الفتح وكلمة مرور الحماية من الكتابة؟
نعم. قم بتوفير كلمة مرور الفتح عبر خيارات التحميل لفتح العرض المشفر، وتحقق من كلمة مرور الحماية من الكتابة بشكل منفصل عند الحاجة إلى صلاحية تعديل.