PHP'de Şekil Kilitleri ile Sunum Düzenlemelerini Kısıtlayın
Genel Bakış
Aspose.Slides for PHP via Java’nin 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, planlanan düzeni ve içeriği korumaya yardımcı olabilir.
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.
Bir Slaydı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 sunum oluşturmak için kullanılan diğer bileşenlerden oluşur. Aspose.Slides for PHP via Java’de, bir slayttaki her öğe, Şekil sınıfından türeyen bir nesneyle temsil edilir.
Farklı şekil tipleri farklı kilitleme seçenekleri sunar. BaseShapeLock sınıfı, şekil kilitlerinin temel sınıfıdır. Aspose.Slides for PHP via Java aşağıdaki kilit sınıflarını sağlar:
- AutoShapeLock otomatik şekilleri kilitler.
- ConnectorLock bağlayıcı şekilleri kilitler.
- GraphicalObjectLock grafik nesneleri kilitler.
- GroupShapeLock grup şekilleri kilitler.
- PictureFrameLock resim çerçevelerini kilitler.
Bir Sunum içinde kilitleri uygulamak için, slaytları üzerinden döngü yaparak her desteklenen şekle 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 PHP via Java, bir slayttaki şekillerle çalışmak için Şekil sınıfını sağlar.
Örnek, otomatik şekiller için true ile setSelectLocked, setPositionLocked ve setSizeLocked metodlarını çağırır; grup şekilleri, bağlayıcılar ve resim çerçeveleri için eşdeğer kilitleri kullanır. Bağlayıcılar hareket için setPositionMove metodunu; gruplar ise gruplamayı kısıtlamak için setGroupingLocked metodunu kullanır.
Örnek, mevcut bir PPTX sunumunu yükler, her slaydın şekil koleksiyonundaki şekilleri kontrol eder ve bu kısıtlamalar uygulanmış bir kopyasını kaydeder. Dört işlenen tip dışındaki şekiller değişmeden kalır. Döngü, bir grup içindeki alt şekilleri dolaşmaz.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("Sample.pptx");
try {
foreach ($presentation->getSlides()->toArray() as $slide) {
foreach ($slide->getShapes()->toArray() as $shape) {
if (java_instanceof($shape, new JavaClass("com.aspose.slides.AutoShape"))) {
$shapeLock = $shape->getShapeLock();
$shapeLock->setPositionLocked(true);
$shapeLock->setSelectLocked(true);
$shapeLock->setSizeLocked(true);
} elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.GroupShape"))) {
$shapeLock = $shape->getShapeLock();
$shapeLock->setGroupingLocked(true);
$shapeLock->setPositionLocked(true);
$shapeLock->setSelectLocked(true);
$shapeLock->setSizeLocked(true);
} elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.Connector"))) {
$shapeLock = $shape->getShapeLock();
$shapeLock->setPositionMove(true);
$shapeLock->setSelectLocked(true);
$shapeLock->setSizeLocked(true);
} elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.PictureFrame"))) {
$shapeLock = $shape->getShapeLock();
$shapeLock->setPositionLocked(true);
$shapeLock->setSelectLocked(true);
$shapeLock->setSizeLocked(true);
}
}
}
$presentation->save("ProtectedSample.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Koruma Kaldırma
Bir şekil kilidini kaldırmak için, değerini false olarak ayarlayın. Aşağıdaki örnek, şekil kilitleri olan bir sunumu yükler ve seçim, hareket ve yeniden boyutlandırma kısıtlamalarını AutoShapeLock, GroupShapeLock, ConnectorLock ve PictureFrameLock aracılığıyla temizler. Ayrıca, gruplama kısıtlamasını GroupShapeLock::setGroupingLocked metoduna false geçirerek kaldırır ve sunumun bir kopyasını kaydeder. Diğer kilit ayarları değişmeden kalır.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("ProtectedSample.pptx");
try {
foreach ($presentation->getSlides()->toArray() as $slide) {
foreach ($slide->getShapes()->toArray() as $shape) {
if (java_instanceof($shape, new JavaClass("com.aspose.slides.AutoShape"))) {
$shapeLock = $shape->getShapeLock();
$shapeLock->setPositionLocked(false);
$shapeLock->setSelectLocked(false);
$shapeLock->setSizeLocked(false);
} elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.GroupShape"))) {
$shapeLock = $shape->getShapeLock();
$shapeLock->setGroupingLocked(false);
$shapeLock->setPositionLocked(false);
$shapeLock->setSelectLocked(false);
$shapeLock->setSizeLocked(false);
} elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.Connector"))) {
$shapeLock = $shape->getShapeLock();
$shapeLock->setPositionMove(false);
$shapeLock->setSelectLocked(false);
$shapeLock->setSizeLocked(false);
} elseif (java_instanceof($shape, new JavaClass("com.aspose.slides.PictureFrame"))) {
$shapeLock = $shape->getShapeLock();
$shapeLock->setPositionLocked(false);
$shapeLock->setSelectLocked(false);
$shapeLock->setSizeLocked(false);
}
}
}
$presentation->save("RemovedProtectionSample.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Sonuç
Aspose.Slides for PHP via Java, 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 tipi tarafından desteklenen kilitleri seçin ve bu kısıtlamaları kaldırmanız gerektiğinde değerlerini false olarak ayarlayın.
SSS
Bir sunumda şekil kilitlerini ve şifre korumasını birleştirebilir miyim?
Evet. Şekil kilitleri belirli düzenleme işlemlerini kısıtlarken, parola 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çili slaytlardaki şekillere uygulayın. Bu, diğer slaytlardaki kilit ayarlarını değiştirmez.
Bir grup içindeki tek tek şekillere kilitleri nasıl uygularım?
Grubun getShapes metodunun döndürdüğü koleksiyon üzerinden döngü yapın ve her alt şekle uygun kilitleri uygulayın. Bu işlemi iç içe gruplar için de tekrarlayın. Yukarıdaki örnekler yalnızca slaydın şekil koleksiyonunu işlediği için, bireysel grup üyelerine kilit uygulamaz.