ป้องกันการแก้ไขงานนำเสนอด้วยการล็อกรูปร่างใน Python

พื้นหลัง

การใช้ Aspose.Slides อย่างทั่วไปคือการสร้าง, อัปเดตและบันทึกงานนำเสนอ Microsoft PowerPoint (PPTX) เป็นส่วนหนึ่งของกระบวนการทำงานอัตโนมัติ ผู้ใช้ของแอปพลิเคชันที่ใช้ Aspose.Slides ในลักษณะนี้จะเข้าถึงงานนำเสนอที่สร้างขึ้น ดังนั้นการปกป้องไม่ให้แก้ไขจึงเป็นข้อกังวลทั่วไป จำเป็นให้งานนำเสนอที่สร้างโดยอัตโนมัติคงรูปแบบและเนื้อหาเดิมไว้

บทความนี้อธิบายโครงสร้างของงานนำเสนอและสไลด์ และวิธีที่ Aspose.Slides for Python สามารถใช้การป้องกันต่อไฟล์งานนำเสนอและลบการป้องกันนั้นออกได้ในภายหลัง ให้วิธีการสำหรับนักพัฒนาในการควบคุมการใช้งานของงานนำเสนอที่แอปพลิเคชันของพวกเขาสร้างขึ้น

การประกอบส่วนของสไลด์

สไลด์ของงานนำเสนอประกอบด้วยส่วนต่าง ๆ เช่น autoshapes, tables, OLE objects, grouped shapes, picture frames, video frames, connectors และองค์ประกอบอื่น ๆ ที่ใช้สร้างงานนำเสนอ ใน Aspose.Slides for Python แต่ละองค์ประกอบบนสไลด์จะแสดงด้วยอ็อบเจ็กต์ที่สืบทอดจากคลาส Shape

โครงสร้างของ PPTX มีความซับซ้อน ดังนั้นต่างจาก PPT ที่สามารถใช้ lock โดยรวมได้กับรูปแบบทั้งหมด, รูปแบบต่าง ๆ ใน PPTX จำเป็นต้องใช้ lock ประเภทต่างกัน คลาส BaseShapeLock คือคลาสล็อกทั่วไปสำหรับ PPTX ประเภทของ lock ที่สนับสนุนใน Aspose.Slides for Python สำหรับ PPTX มีดังนี้

การกระทำใด ๆ ที่ทำกับอ็อบเจ็กต์รูปแบบทั้งหมดในอ็อบเจ็กต์ Presentation จะถูกนำไปใช้กับงานนำเสนอทั้งหมด

การใช้และการลบการป้องกัน

การใช้การป้องกันทำให้ไม่สามารถแก้ไขงานนำเสนอได้ ถือเป็นเทคนิคที่มีประโยชน์สำหรับการปกป้องเนื้อหาในงานนำเสนอ

ใช้การป้องกันกับรูปร่างใน PPTX

Aspose.Slides for Python มีคลาส Shape เพื่อทำงานกับรูปร่างบนสไลด์

ตามที่ได้กล่าวไว้ก่อนหน้า แต่ละคลาสรูปร่างมีคลาสล็อกที่สอดคล้องกันสำหรับการป้องกัน บทความนี้เน้นที่ล็อก NoSelect, NoMove และ NoResize ซึ่งล็อกเหล่านี้ทำให้ไม่สามารถเลือกรูปร่าง (ผ่านการคลิกเมาส์หรือวิธีการเลือกอื่น) และไม่สามารถย้ายหรือปรับขนาดรูปร่างได้

โค้ดตัวอย่างต่อไปนี้ใช้การป้องกันกับรูปแบบทุกประเภทในงานนำเสนอ

import aspose.slides as slides

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PPTX
with slides.Presentation("Sample.pptx") as presentation:
    # เขียนวนลูปผ่านสไลด์ทั้งหมดในงานนำเสนอ
    for slide in presentation.slides:
        # เขียนวนลูปผ่านรูปร่างทั้งหมดในสไลด์
        for shape in slide.shapes:
            if type(shape) is slides.AutoShape:
                shape.shape_lock.position_locked = True
                shape.shape_lock.select_locked = True
                shape.shape_lock.size_locked = True
            elif type(shape) is slides.GroupShape:
                shape.shape_lock.grouping_locked = True
                shape.shape_lock.position_locked = True
                shape.shape_lock.select_locked = True
                shape.shape_lock.size_locked = True
            elif type(shape) is slides.Connector:
                shape.shape_lock.position_move = True
                shape.shape_lock.select_locked = True
                shape.shape_lock.size_locked = True
            elif type(shape) is slides.PictureFrame:
                shape.shape_lock.position_locked = True
                shape.shape_lock.select_locked = True
                shape.shape_lock.size_locked = True
    # กำลังบันทึกไฟล์งานนำเสนอ
    presentation.save("ProtectedSample.pptx", slides.export.SaveFormat.PPTX)

ลบการป้องกัน

เพื่อปลดล็อกรูปร่าง ให้ตั้งค่าค่าล็อกที่ได้กำหนดไว้เป็น False ตัวอย่างโค้ดต่อไปนี้แสดงวิธีปลดล็อกรูปร่างในงานนำเสนอที่ถูกล็อก

import aspose.slides as slides

# สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์ PPTX
with slides.Presentation("ProtectedSample.pptx") as presentation:
    # เขียนวนลูปผ่านสไลด์ทั้งหมดในงานนำเสนอ
    for slide in presentation.slides:
        # เขียนวนลูปผ่านรูปร่างทั้งหมดในสไลด์
        for shape in slide.shapes:
            if type(shape) is slides.AutoShape:
                shape.shape_lock.position_locked = False
                shape.shape_lock.select_locked = False
                shape.shape_lock.size_locked = False
            elif type(shape) is slides.GroupShape:
                shape.shape_lock.grouping_locked = False
                shape.shape_lock.position_locked = False
                shape.shape_lock.select_locked = False
                shape.shape_lock.size_locked = False
            elif type(shape) is slides.Connector:
                shape.shape_lock.position_move = False
                shape.shape_lock.select_locked = False
                shape.shape_lock.size_locked = False
            elif type(shape) is slides.PictureFrame:
                shape.shape_lock.position_locked = False
                shape.shape_lock.select_locked = False
                shape.shape_lock.size_locked = False
    # กำลังบันทึกไฟล์งานนำเสนอ
    presentation.save("RemovedProtectionSample.pptx", slides.export.SaveFormat.PPTX)

สรุป

Aspose.Slides มีตัวเลือกหลายอย่างสำหรับการป้องกันรูปร่างในงานนำเสนอ คุณสามารถล็อกรูปร่างเดียวหรือวนลูปผ่านรูปร่างทั้งหมดในงานนำเสนอและล็อกแต่ละรูปร่างเพื่อให้ไฟล์ทั้งหมดปลอดภัยได้ คุณสามารถลบการป้องกันได้โดยตั้งค่าค่าล็อกเป็น False

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

ฉันสามารถรวมล็อกของรูปร่างและการป้องกันด้วยรหัสผ่านในงานนำเสนอเดียวกันได้หรือไม่?

ใช่. ล็อกจำกัดการแก้ไขออบเจ็กต์ภายในไฟล์ ในขณะที่ password protection ควบคุมการเข้าถึงการเปิดหรือบันทึกการเปลี่ยนแปลง กลไกเหล่านี้ทำงานเสริมกันและทำงานร่วมกัน

ฉันสามารถจำกัดการแก้ไขบนสไลด์เฉพาะโดยไม่กระทบสไลด์อื่นได้หรือไม่?

ใช่. ใช้ล็อกกับรูปร่างบนสไลด์ที่เลือก; สไลด์ที่เหลือจะยังคงแก้ไขได้

ล็อกของรูปร่างใช้กับออบเจ็กต์ที่รวมกลุ่มและคอนเนคเตอร์หรือไม่?

ใช่. มีประเภทล็อกที่ออกแบบเฉพาะสำหรับกลุ่ม, คอนเนคเตอร์, graphic objects และรูปแบบอื่น ๆ ของรูปร่าง