การป้องกันการเขียนงานนำเสนอใน Java

บทนำ

รหัสผ่านการป้องกันการเขียนจำกัดการแก้ไขของงานนำเสนอ แต่ไม่ได้เข้ารหัสเนื้อหา ผู้ใช้สามารถโหลดและดูงานนำเสนอที่ถูกป้องกันการเขียนได้โดยไม่ต้องใช้รหัสผ่าน ขึ้นอยู่กับแอปพลิเคชัน ผู้ใช้อาจสามารถแก้ไขเนื้อหาและบันทึกเป็นชื่ออื่นได้ ดังนั้นการป้องกันการเขียนไม่ควรถือเป็นกลไกความลับ

รหัสผ่านการเปิดทำหน้าที่ต่างออกไป: มันเข้ารหัสงานนำเสนอและจำเป็นต้องใช้เพื่อโหลดเนื้อหา หากต้องการเข้ารหัสงานนำเสนอหรือยืนยันรหัสผ่านการเปิด ดูที่ การป้องกันด้วยรหัสผ่าน.

กระบวนการทำงานในบทความนี้ใช้ได้กับงานนำเสนอทั้ง 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.");
}

เวอร์ชัน overload แบบสตรีมของ 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 จะให้การตรวจสอบการป้องกันการเขียนที่เทียบเท่าผ่านผู้จัดการการป้องกัน

ในแอปพลิเคชันที่ใช้งานจริง อย่าบันทึกรหัสผ่านลงบันทึกหรือใส่ในข้อความการวินิจฉัย หลีกเลี่ยงการตรวจสอบซ้ำโดยไม่จำเป็น และเก็บรหัสผ่านในหน่วยความจำเพียงเท่าที่จำเป็น

คำถามที่พบบ่อย

การป้องกันการเขียนเข้ารหัสงานนำเสนอหรือไม่?

ไม่. มันจำกัดการแก้ไขแต่ทำให้เนื้อหางานนำเสนอยังคงพร้อมสำหรับการโหลดและการดู

จำเป็นต้องใช้รหัสผ่านการป้องกันการเขียนเพื่อเปิดงานนำเสนอหรือไม่?

ไม่. มีเพียงรหัสผ่านการเปิดที่จำเป็นเพื่อโหลดเนื้อหาที่เข้ารหัสของงานนำเสนอ

งานนำเสนอสามารถมีรหัสผ่านการเปิดและรหัสผ่านการป้องกันการเขียนพร้อมกันได้หรือไม่?

ได้. ให้ใส่รหัสผ่านการเปิดผ่านตัวเลือกการโหลดเพื่อเปิดงานนำเสนอที่เข้ารหัส และตรวจสอบรหัสผ่านการป้อนกันการเขียนแยกต่างหากเมื่อจำเป็นต้องมีสิทธิ์การแก้ไข