Şekil Kilitleriyle Sunum Düzenlemelerini Önleme

Arka Plan

Aspose.Slides’in yaygın bir kullanımı, otomatik bir iş akışının parçası olarak Microsoft PowerPoint (PPTX) sunumlarını oluşturmak, güncellemek ve kaydetmektir. Aspose.Slides’i bu şekilde kullanan uygulamaların kullanıcıları oluşturulan sunumlara erişir, bu nedenle bunları düzenlemeye karşı korumak yaygın bir endişedir. Otomatik olarak oluşturulan sunumların orijinal biçimlendirmesini ve içeriğini koruması önemlidir.

Bu makale, sunumların ve slaytların nasıl yapılandırıldığını ve Aspose.Slides for Java’nın bir sunuma koruma nasıl uygulayabileceğini ve daha sonra nasıl kaldırabileceğini açıklar. Geliştiricilere, uygulamalarının ürettiği sunumların nasıl kullanılacağını kontrol etme imkanı sağlar.

Bir Slaytın Bileşimi

Bir sunum slaydı, otomatik şekiller, tablolar, OLE nesneleri, gruplanmış şekiller, resim çerçeveleri, video çerçeveleri, bağlayıcılar ve bir sunumu oluşturmak için kullanılan diğer öğeler gibi bileşenlerden oluşur. Aspose.Slides for Java’da bir slayttaki her öğe, IShape arayüzünü uygulayan veya bu arayüzden türeyen bir nesneyle temsil edilir.

PPTX’in yapısı karmaşıktır, bu yüzden PPT’de tüm şekil türleri için tek bir genel kilit kullanılabilirken, farklı şekil türleri farklı kilitler gerektirir. IBaseShapeLock arayüzü PPTX için genel kilitleme sınıfıdır. Aspose.Slides for Java, PPTX için aşağıdaki kilit türlerini destekler:

Bir Presentation nesnesindeki tüm şekil nesneleri üzerinde gerçekleştirilen herhangi bir eylem, tüm sunuma uygulanır.

Koruma Uygulama ve Kaldırma

Koruma uygulamak, bir sunumun düzenlenememesini sağlar. Sunum içeriğini korumak için faydalı bir tekniktir.

PPTX Şekillerine Koruma Uygulama

Aspose.Slides for Java, bir slayttaki şekillerle çalışmak için IShape arayüzünü sunar.

Daha önce belirtildiği gibi, her şekil sınıfının koruma için ilişkili bir şekil‑kilit sınıfı vardır. Bu makale NoSelect, NoMove ve NoResize kilitlerine odaklanır. Bu kilitler, şekillerin (fare tıklamaları veya diğer seçim yöntemleriyle) seçilememesini ve taşınamamasını ya da yeniden boyutlandırılamamasını sağlar.

Aşağıdaki kod örneği, bir sunumdaki tüm şekil türlerine koruma uygular.

// PPTX dosyasını temsil eden Presentation sınıfını örnekleyin.
Presentation presentation = new Presentation("Sample.pptx");

// Sunumdaki tüm slaytları dolaşıyor.
for (ISlide slide : presentation.getSlides()) {

    // Slayttaki tüm şekilleri dolaşıyor.
    for (IShape shape : slide.getShapes()) {
        if (shape instanceof IAutoShape) {
            // Şekli bir AutoShape’e tip dönüştürerek şekil kilidini elde ediyor.
            IAutoShape autoShape = (IAutoShape) shape;
            IAutoShapeLock autoShapeLock = (IAutoShapeLock) autoShape.getShapeLock();

            autoShapeLock.setPositionLocked(true);
            autoShapeLock.setSelectLocked(true);
            autoShapeLock.setSizeLocked(true);
        } else if (shape instanceof IGroupShape) {
            // Şekli bir grup şekle tip dönüştürerek şekil kilidini elde ediyor.
            IGroupShape groupShape = (IGroupShape) shape;
            IGroupShapeLock groupShapeLock = (IGroupShapeLock) groupShape.getShapeLock();

            groupShapeLock.setGroupingLocked(true);
            groupShapeLock.setPositionLocked(true);
            groupShapeLock.setSelectLocked(true);
            groupShapeLock.setSizeLocked(true);
        } else if (shape instanceof IConnector) {
            // Şekli bir bağlayıcı şekle tip dönüştürerek şekil kilidini elde ediyor.
            IConnector connectorShape = (IConnector) shape;
            IConnectorLock connectorShapeLock = connectorShape.getShapeLock();

            connectorShapeLock.setPositionMove(true);
            connectorShapeLock.setSelectLocked(true);
            connectorShapeLock.setSizeLocked(true);
        } else if (shape instanceof IPictureFrame) {
            // Şekli bir resim çerçevesine tip dönüştürerek şekil kilidini elde ediyor.
            IPictureFrame pictureFrame = (IPictureFrame) shape;
            IPictureFrameLock pictureFrameLock = (IPictureFrameLock) pictureFrame.getShapeLock();

            pictureFrameLock.setPositionLocked(true);
            pictureFrameLock.setSelectLocked(true);
            pictureFrameLock.setSizeLocked(true);
        }
    }
}

// Sunum dosyasını kaydediyor.
presentation.save("ProtectedSample.pptx", SaveFormat.Pptx);
presentation.dispose();

Koruma Kaldırma

Bir şeklin kilidini açmak için, uygulanan kilidin değerini false olarak ayarlayın. Aşağıdaki kod örneği, kilitli bir sunumdaki şekillerin kilidini nasıl açacağınızı gösterir.

// PPTX dosyasını temsil eden Presentation sınıfını örnekleyin.
Presentation presentation = new Presentation("ProtectedSample.pptx");

// Sunumdaki tüm slaytları dolaşıyor.
for (ISlide slide : presentation.getSlides()) {

    // Slayttaki tüm şekilleri dolaşıyor.
    for (IShape shape : slide.getShapes()) {
        if (shape instanceof IAutoShape) {
            // Şekli bir autoshape’e tip dönüştürerek şekil kilidini elde ediyor.
            IAutoShape autoShape = (IAutoShape) shape;
            IAutoShapeLock autoShapeLock = (IAutoShapeLock) autoShape.getShapeLock();

            autoShapeLock.setPositionLocked(false);
            autoShapeLock.setSelectLocked(false);
            autoShapeLock.setSizeLocked(false);
        } else if (shape instanceof IGroupShape) {
            // Şekli bir grup şekle tip dönüştürerek şekil kilidini elde ediyor.
            IGroupShape groupShape = (IGroupShape) shape;
            IGroupShapeLock groupShapeLock = (IGroupShapeLock) groupShape.getShapeLock();

            groupShapeLock.setGroupingLocked(false);
            groupShapeLock.setPositionLocked(false);
            groupShapeLock.setSelectLocked(false);
            groupShapeLock.setSizeLocked(false);
        } else if (shape instanceof IConnector) {
            // Şekli bir bağlayıcı şekle tip dönüştürerek şekil kilidini elde ediyor.
            IConnector connectorShape = (IConnector) shape;
            IConnectorLock connectorShapeLock = connectorShape.getShapeLock();

            connectorShapeLock.setPositionMove(false);
            connectorShapeLock.setSelectLocked(false);
            connectorShapeLock.setSizeLocked(false);
        } else if (shape instanceof IPictureFrame) {
            // Şekli bir resim çerçevesine tip dönüştürerek şekil kilidini elde ediyor.
            IPictureFrame pictureFrame = (IPictureFrame) shape;
            IPictureFrameLock pictureFrameLock = (IPictureFrameLock) pictureFrame.getShapeLock();

            pictureFrameLock.setPositionLocked(false);
            pictureFrameLock.setSelectLocked(false);
            pictureFrameLock.setSizeLocked(false);
        }
    }
}

// Sunum dosyasını kaydediyor.
presentation.save("RemovedProtectionSample.pptx", SaveFormat.Pptx);
presentation.dispose();

Sonuç

Aspose.Slides, bir sunumdaki şekilleri korumak için çeşitli seçenekler sunar. Tek bir şekli kilitleyebilir veya bir sunumdaki tüm şekiller üzerinde dolaşıp her birini kilitleyerek dosyanın tamamını etkili bir şekilde güvence altına alabilirsiniz. Kilit değerini false yaparak korumayı kaldırabilirsiniz.

SSS

Şekil kilitlerini ve parola korumasını aynı sunumda birleştirebilir miyim?

Evet. Kilitler dosya içindeki nesnelerin düzenlenmesini sınırlar, parola koruması ise açma ve/veya değişiklikleri kaydetme erişimini kontrol eder. Bu mekanizmalar birbirini tamamlar ve birlikte çalışır.

Belirli slaytlarda düzenlemeyi kısıtlayıp diğerlerini etkilemez miyim?

Evet. Seçili slaytlardaki şekillere kilitler uygulayın; kalan slaytlar düzenlenebilir kalır.

Şekil kilitleri gruplanmış nesnelere ve bağlayıcılara uygulanıyor mu?

Evet. Gruplar, bağlayıcılar, grafik nesneler ve diğer şekil türleri için özel kilit tipleri desteklenir.