Prezentáció szerkesztésének korlátozása alakzatzárolásokkal PHP-ben
Áttekintés
Az Aspose.Slides for PHP via Java gyakori felhasználása a PowerPoint (PPTX) prezentációk létrehozása, frissítése és mentése automatizált munkafolyamat részeként. Amikor a felhasználók megkapják ezeket a prezentációkat, az alakzatok módosításának korlátozása segíthet megőrizni a kívánt elrendezést és tartalmat.
Ez a cikk elmagyarázza, hogyan vannak az alakzatok elrendezve a diaokon, és hogyan lehet alkalmazni és eltávolítani az alakzatzárolásokat egy PPTX prezentációban. Ezek a zárolások lehetővé teszik, hogy egyes alakzatokon korlátozzuk a specifikus szerkesztési műveleteket.
Dia felépítése
Egy prezentációs dia olyan komponensekből áll, mint az autoshape-ek, táblázatok, OLE-objektumok, csoportosított alakzatok, képkockák, videokockák, összekötők és egyéb elemek, amelyeket a prezentáció építéséhez használnak. Az Aspose.Slides for PHP via Java-ban a dia minden eleme egy olyan objektummal van reprezentálva, amely a Shape osztályból származik.
A különböző alakzat típusok különböző zárolási opciókat biztosítanak. A BaseShapeLock osztály a alakzatzárolások alaposztálya. Az Aspose.Slides for PHP via Java a következő zárolási osztályokat kínálja:
- AutoShapeLock zárolja az autoshape-eket.
- ConnectorLock zárolja a csatlakozó alakzatokat.
- GraphicalObjectLock zárolja a grafikus objektumokat.
- GroupShapeLock zárolja a csoportosított alakzatokat.
- PictureFrameLock zárolja a képkockákat.
A Presentation során a zárolások alkalmazásához iteráljunk a diákon, és állítsuk be a megfelelő zárolásokat minden támogatott alakzatra.
Védelem alkalmazása és eltávolítása
Az alakzatzárolások korlátozzák a műveleteket, mint például az alakzatok kiválasztása, mozgatása és átméretezése. Nem teszik a teljes prezentációt szerkeszthetetlenné.
Védelem alkalmazása PPTX alakzatokra
Az Aspose.Slides for PHP via Java a Shape osztályt biztosítja a dián lévő alakzatok kezeléséhez.
A példa meghívja a setSelectLocked, setPositionLocked és a setSizeLocked metódusokat true értékkel az autoshape-eknél, valamint a megfelelő zárolásokat a csoportosított alakzatok, csatlakozók és képkockák esetén. A csatlakozók a setPositionMove metódust használják a mozgatáshoz; a csoportok pedig a setGroupingLocked metódust is alkalmazzák a csoportosítás korlátozásához.
A példa betölti a meglévő PPTX prezentációt, ellenőrzi az egyes diák alakzatgyűjtését, és egy másolatot ment a alkalmazott korlátozásokkal. A négy kezelt típuson kívül eső alakzatok változatlanok maradnak. A ciklus nem járja be a csoporton belüli gyermekalakzatokat.
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();
}
Védelem eltávolítása
Az alakzatzárolás eltávolításához állítsa az értékét false-ra. A következő példa betölt egy prezentációt alakzatzárolásokkal, és a AutoShapeLock, GroupShapeLock, ConnectorLock és PictureFrameLock segítségével törli a kiválasztás, mozgatás és átméretezés korlátozásait. Emellett a csoportosítási korlátozást is eltávolítja, ha false értéket ad át a GroupShapeLock::setGroupingLocked metódusnak, és a prezentáció egy másolatát menti. A többi zárolási beállítás változatlan marad.
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();
}
Összegzés
Az Aspose.Slides for PHP via Java lehetővé teszi, hogy bizonyos szerkesztési műveleteket korlátozzon egyes alakzatokon vagy ugyanazokat a korlátozásokat alkalmazza a diákon keresztül. Válassza ki az egyes alakzat típusok által támogatott zárolásokat, és állítsa értéküket false-ra, ha el szeretné távolítani ezeket a korlátozásokat.
GYIK
Kombinálhatom a shape zárolásokat és a jelszóvédelmet ugyanabban a prezentációban?
Igen. A shape zárolások bizonyos szerkesztési műveleteket korlátoznak, míg a jelszóvédelem korlátozhatja a prezentáció megnyitását vagy módosítását. Mindkettőt használhatja ugyanabban a fájlban.
Korlátozhatom a szerkesztést bizonyos diaokon, anélkül, hogy a többit befolyásolnám?
Igen. Csak a kiválasztott diák alakzatain alkalmazza a zárolásokat. Ez nem változtatja meg a többi dia zárolási beállításait.
Hogyan alkalmazhatok zárolásokat egyes alakzatokra egy csoporton belül?
Iteráljon a csoport getShapes metódusa által visszaadott gyűjteményen, és alkalmazza a megfelelő zárolásokat minden gyermekalakzatra. Ismételje ezt bármely beágyazott csoport esetén. A fenti példák csak a dia alakzatgyűjteményét dolgozzák fel, ezért nem állítanak be zárolásokat egyes csoporttagokra.