Python'da Şekil Kilitleriyle Sunum Düzenlemelerini Kısıtla

Arka Plan

Aspose.Slides for Python via .NET’in yaygın bir kullanımı, otomatik bir iş akışının parçası olarak PowerPoint (PPTX) sunumları oluşturmak, güncellemek ve kaydetmektir. Kullanıcılar bu sunumları aldıklarında, şekillerdeki değişiklikleri kısıtlamak, amaçlanan düzeni ve içeriği korumaya yardımcı olur.

Bu makale, şekillerin slaytlarda nasıl düzenlendiğini ve bir PPTX sunumunda şekil kilitlerinin nasıl uygulanıp kaldırılacağını açıklar. Bu kilitler, tek tek şekiller üzerinde belirli düzenleme işlemlerini kısıtlamanızı sağlar.

Slayt Bileşimi

Bir sunum slaytı, otomatik şekiller, tablolar, OLE nesneleri, gruplanmış şekiller, resim çerçeveleri, video çerçeveleri, bağlayıcılar ve bir sunum oluşturmak için kullanılan diğer öğeler gibi bileşenlerden oluşur. Aspose.Slides for Python via .NET’te, bir slayttaki her öğe, Shape sınıfından türeyen bir nesne ile temsil edilir.

Farklı şekil türleri farklı kilitleme seçenekleri sunar. BaseShapeLock sınıfı, şekil kilitleri için temel sınıftır. Aspose.Slides for Python via .NET aşağıdaki kilit sınıflarını sağlar:

Bir Presentation üzerindeki kilitleri uygulamak için, slaytlarını dolaşın ve desteklenen her şekil üzerinde uygun kilitleri ayarlayın.

Koruma Uygulama ve Kaldırma

Şekil kilitleri, şekilleri seçme, taşıma ve yeniden boyutlandırma gibi işlemleri kısıtlar. Tüm sunumu düzenlenemez hâle getirmezler.

PPTX Şekillerine Koruma Uygulama

Aspose.Slides for Python via .NET, bir slayttaki şekillerle çalışmak için Shape sınıfını sağlar.

Örnek, otomatik şekiller için select_locked, position_locked ve size_locked değerlerini True olarak ayarlar; grup şekilleri, bağlayıcılar ve resim çerçeveleri için eşdeğer kilitler kullanılır. Bağlayıcılar hareket için position_move kullanır; gruplar da gruplayı kısıtlamak için grouping_locked kullanır.

Örnek, mevcut bir PPTX sunumunu yükler, her slaytın şekil koleksiyonundaki şekilleri kontrol eder ve bu kısıtlamalar uygulanmış bir kopya olarak kaydeder. Dört işlenen tipin dışındaki şekiller değişmeden kalır. Döngü, bir grup içindeki alt şekilleri dolaşmaz.

import aspose.slides as slides

with slides.Presentation("Sample.pptx") as presentation:
    for slide in presentation.slides:
        for shape in slide.shapes:
            if isinstance(shape, slides.AutoShape):
                shape.shape_lock.position_locked = True
                shape.shape_lock.select_locked = True
                shape.shape_lock.size_locked = True
            elif isinstance(shape, 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 isinstance(shape, slides.Connector):
                shape.shape_lock.position_move = True
                shape.shape_lock.select_locked = True
                shape.shape_lock.size_locked = True
            elif isinstance(shape, 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)

Koruma Kaldırma

Bir şekil kilidini kaldırmak için, değerini False olarak ayarlayın. Aşağıdaki örnek, şekil kilitleri bulunan bir sunumu yükler ve seçim, taşıma ve yeniden boyutlandırma kısıtlamalarını AutoShapeLock, GroupShapeLock, ConnectorLock ve PictureFrameLock aracılığıyla temizler. Ayrıca GroupShapeLock.grouping_locked değerini temizler ve sunumun bir kopyasını kaydeder. Diğer kilit ayarları değişmeden kalır.

import aspose.slides as slides

with slides.Presentation("ProtectedSample.pptx") as presentation:
    for slide in presentation.slides:
        for shape in slide.shapes:
            if isinstance(shape, slides.AutoShape):
                shape.shape_lock.position_locked = False
                shape.shape_lock.select_locked = False
                shape.shape_lock.size_locked = False
            elif isinstance(shape, 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 isinstance(shape, slides.Connector):
                shape.shape_lock.position_move = False
                shape.shape_lock.select_locked = False
                shape.shape_lock.size_locked = False
            elif isinstance(shape, 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)

Sonuç

Aspose.Slides for Python via .NET, tek tek şekiller üzerinde belirli düzenleme işlemlerini kısıtlamanıza veya aynı kısıtlamaları slaytlar arasında uygulamanıza olanak tanır. Her şekil türü tarafından desteklenen kilitleri seçin ve bu kısıtlamaları kaldırmanız gerektiğinde değerlerini False olarak ayarlayın.

SSS

Şekil kilitleri ile şifre korumasını aynı sunumda birleştirebilir miyim?

Evet. Şekil kilitleri belirli düzenleme işlemlerini kısıtlarken, şifre koruması sunumun açılmasını veya değiştirilmesini kısıtlayabilir. İkisini aynı dosyada kullanabilirsiniz.

Belirli slaytlarda düzenlemeyi diğerlerini etkilemeden kısıtlayabilir miyim?

Evet. Kilitleri yalnızca seçilen slaytlardaki şekillere uygularsınız. Bu, diğer slaytlardaki kilit ayarlarını değiştirmez.

Bir grup içindeki tek tek şekillere nasıl kilit uygulayabilirim?

Grubun shapes koleksiyonunda dolaşarak her alt şekle uygun kilitleri uygulayın. İç içe gruplar için de aynı işlemi tekrarlayın. Yukarıdaki örnekler yalnızca slaytın şekil koleksiyonunu işler, bu yüzden grup üyelerine kilit uygulamaz.