ป้องกันการแก้ไขงานนำเสนอด้วยการล็อกรูปร่าง
พื้นหลัง
การใช้ Aspose.Slides อย่างทั่วไปคือการสร้าง, อัปเดต, และบันทึกงานนำเสนอ Microsoft PowerPoint (PPTX) เป็นส่วนหนึ่งของเวิร์กโฟลว์อัตโนมัติ ผู้ใช้แอปพลิเคชันที่ใช้ Aspose.Slides ในลักษณะนี้จะเข้าถึงงานนำเสนอที่สร้างขึ้น ดังนั้นการปกป้องไม่ให้แก้ไขจึงเป็นข้อกังวลทั่วไป การที่งานนำเสนอที่สร้างอัตโนมัติยังคงรักษาการจัดรูปแบบและเนื้อหาต้นฉบับจึงเป็นสิ่งสำคัญ
บทความนี้อธิบายว่าการจัดโครงสร้างของงานนำเสนอและสไลด์เป็นอย่างไร และ Aspose.Slides for Python via Java สามารถใช้การปกป้องกับงานนำเสนอและถอดออกได้อย่างไร มันให้ผู้พัฒนาวิธีควบคุมวิธีการใช้งานนำเสนอที่แอปพลิเคชันของพวกเขาสร้างขึ้น
โครงสร้างของสไลด์
สไลด์งานนำเสนอประกอบด้วยส่วนต่าง ๆ เช่น autoshapes, tables, OLE objects, grouped shapes, picture frames, video frames, connectors, และองค์ประกอบอื่น ๆ ที่ใช้สร้างงานนำเสนอ ใน Aspose.Slides for Python via Java แต่ละองค์ประกอบบนสไลด์จะแสดงด้วยอ็อบเจ็กต์ที่สืบทอดจากคลาส Shape
โครงสร้างของ PPTX คซับซ้อน ดังนั้นจึงต่างจาก PPT ที่สามารถใช้ล็อกทั่วไปกับรูปทรงทุกประเภทได้ ประเภทรูปทรงที่ต่างกันต้องการล็อกที่ต่างกัน คลาส BaseShapeLock เป็นคลาสล็อกทั่วไปสำหรับ PPTX ประเภทล็อกต่อไปนี้ได้รับการสนับสนุนใน Aspose.Slides for Python via Java สำหรับ PPTX:
- AutoShapeLockล็อค autoshapes.
- ConnectorLockล็อค connector shapes.
- GraphicalObjectLockล็อค graphical objects.
- GroupShapeLockล็อค group shapes.
- PictureFrameLockล็อค picture frames.
การกระทำใด ๆ ที่ทำกับอ็อบเจ็กต์ shape ทั้งหมดในอ็อบเจ็กต์ Presentation จะนำไปใช้กับงานนำเสนอทั้งหมด
ใช้และลบการปกป้อง
การใช้การปกป้องทำให้มั่นใจว่างานนำเสนอไม่สามารถแก้ไขได้ ซึ่งเป็นเทคนิคที่มีประโยชน์สำหรับการปกป้องเนื้อหาของงานนำเสนอ
ใช้การปกป้องกับรูปร่าง PPTX
Aspose.Slides for Python via Java มีคลาส Shape เพื่อทำงานกับรูปร่างบนสไลด์
ตามที่กล่าวไปก่อนหน้านี้ แต่ละคลาสรูปร่างมีคลาสล็อกรูปทรงที่เกี่ยวข้องสำหรับการปกป้อง บทความนี้โฟกัสที่ล็อก NoSelect, NoMove, และ NoResize ล็อกเหล่านี้ทำให้รูปร่างไม่สามารถเลือกได้ (โดยการคลิกเมาส์หรือวิธีการเลือกอื่น) และไม่สามารถย้ายหรือปรับขนาดได้
ตัวอย่างโค้ดต่อไปนี้ใช้การปกป้องกับประเภทรูปร่างทั้งหมดในงานนำเสนอ
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpole.startJVM()
from asposeslides.api import AutoShape, Connector, GroupShape, PictureFrame, Presentation, SaveFormat
# สร้างอินสแตนซ์ของคลาส Presentation ที่แสดงไฟล์ PPTX
presentation = Presentation("Sample.pptx")
try:
# วนครั้งผ่านสไลด์ทั้งหมดในงานนำเสนอ
for slide in presentation.getSlides():
# วนครั้งผ่านรูปร่างทั้งหมดในสไลด์
for shape in slide.getShapes():
if isinstance(shape, AutoShape):
auto_shape_lock = shape.getShapeLock()
auto_shape_lock.setPositionLocked(True)
auto_shape_lock.setSelectLocked(True)
auto_shape_lock.setSizeLocked(True)
elif isinstance(shape, GroupShape):
group_shape_lock = shape.getShapeLock()
group_shape_lock.setGroupingLocked(True)
group_shape_lock.setPositionLocked(True)
group_shape_lock.setSelectLocked(True)
group_shape_lock.setSizeLocked(True)
elif isinstance(shape, Connector):
connector_shape_lock = shape.getShapeLock()
connector_shape_lock.setPositionMove(True)
connector_shape_lock.setSelectLocked(True)
connector_shape_lock.setSizeLocked(True)
elif isinstance(shape, PictureFrame):
picture_frame_lock = shape.getShapeLock()
picture_frame_lock.setPositionLocked(True)
picture_frame_lock.setSelectLocked(True)
picture_frame_lock.setSizeLocked(True)
# บันทึกไฟล์งานนำเสนอ
presentation.save("ProtectedSample.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
ลบการปกป้อง
เพื่อปลดล็อกรูปร่าง ให้ตั้งค่าค่าล็อกที่ใช้เป็น False ตัวอย่างโค้ดต่อไปนี้แสดงวิธีปลดล็อกรูปร่างในงานนำเสนอที่ถูกล็อก
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import AutoShape, Connector, GroupShape, PictureFrame, Presentation, SaveFormat
# สร้างอินสแตนซ์ของคลาส Presentation ที่แสดงไฟล์ PPTX
presentation = Presentation("ProtectedSample.pptx")
try:
# วนครั้งผ่านสไลด์ทั้งหมดในงานนำเสนอ
for slide in presentation.getSlides():
# วนครั้งผ่านรูปร่างทั้งหมดในสไลด์
for shape in slide.getShapes():
if isinstance(shape, AutoShape):
auto_shape_lock = shape.getShapeLock()
auto_shape_lock.setPositionLocked(False)
auto_shape_lock.setSelectLocked(False)
auto_shape_lock.setSizeLocked(False)
elif isinstance(shape, GroupShape):
group_shape_lock = shape.getShapeLock()
group_shape_lock.setGroupingLocked(False)
group_shape_lock.setPositionLocked(False)
group_shape_lock.setSelectLocked(False)
group_shape_lock.setSizeLocked(False)
elif isinstance(shape, Connector):
connector_shape_lock = shape.getShapeLock()
connector_shape_lock.setPositionMove(False)
connector_shape_lock.setSelectLocked(False)
connector_shape_lock.setSizeLocked(False)
elif isinstance(shape, PictureFrame):
picture_frame_lock = shape.getShapeLock()
picture_frame_lock.setPositionLocked(False)
picture_frame_lock.setSelectLocked(False)
picture_frame_lock.setSizeLocked(False)
# บันทึกไฟล์งานนำเสนอ
presentation.save("RemovedProtectionSample.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
สรุป
Aspose.Slides มีตัวเลือกหลายอย่างสำหรับการปกป้องรูปร่างในงานนำเสนอ คุณสามารถล็อกรูปร่างเดี่ยวหรือวนผ่านรูปร่างทั้งหมดในงานนำเสนอและล็อกแต่ละรูปร่างเพื่อให้ไฟล์ทั้งหมดปลอดภัยอย่างมีประสิทธิภาพ คุณสามารถลบการปกป้องได้โดยตั้งค่าค่าล็อกเป็น False
คำถามที่พบบ่อย
ฉันสามารถรวมการล็อครูปร่างและการป้องกันด้วยรหัสผ่านในงานนำเสนอเดียวกันได้หรือไม่?
Yes. Locks limit editing of objects inside the file, while password protection controls access to opening and/or saving changes. These mechanisms complement each other and work together.
ฉันสามารถจำกัดการแก้ไขบนสไลด์เฉพาะโดยไม่ส่งผลต่อสไลด์อื่น ๆ ได้หรือไม่?
Yes. Apply locks to the shapes on the selected slides; the remaining slides will stay editable.
การล็อครูปร่างใช้กับวัตถุที่จัดกลุ่มและตัวเชื่อมต่อหรือไม่?
Yes. Dedicated lock types are supported for groups, connectors, graphic objects, and other shape kinds.