A prezentáció szerkesztésének korlátozása alakzatzárolásokkal Java-ban
Háttér
Az Aspose.Slides for Java gyakori felhasználása PowerPoint (PPTX) prezentációk létrehozása, frissítése és mentése automatizált munkafolyamat keretében. 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 tervezett elrendezést és tartalmat.
Ez a cikk elmagyarázza, hogyan vannak szervezve az alakzatok a diákon, valamint 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 alakzatok szerkesztési műveleteit korlátozza.
Dia összetétele
Egy prezentációs dia olyan összetevőkből áll, mint az automatikus alakzatok, táblázatok, OLE objektumok, csoportosított alakzatok, képkockák, videokockák, csatlakozók és egyéb elemek, amelyeket a prezentáció felépítéséhez használnak. Az Aspose.Slides for Java-ban a dia minden eleme egy olyan objektum által van reprezentálva, amely megvalósítja a IShape interfészt, vagy egy olyan osztályból származik, amely ezt teszi.
Különböző alakzat típusok eltérő zárási lehetőségeket kínálnak. A IBaseShapeLock interfész az alakzat zárolások alapinterfésze. Az Aspose.Slides for Java a következő zárolási interfészeket biztosítja:
- IAutoShapeLock zárolja az automatikus alakzatokat.
- IConnectorLock zárolja a csatlakozó alakzatokat.
- IGraphicalObjectLock zárolja a grafikus objektumokat.
- IGroupShapeLock zárolja a csoportos alakzatokat.
- IPictureFrameLock zárolja a képkockákat.
Az Presentation során a zárolások alkalmazásához iteráljon a diákkal, és állítsa 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 kijelölés, mozgatás és átméretezés műveleteit. Nem teszik a teljes prezentációt szerkeszthetetlenné.
Védelem alkalmazása PPTX alakzatokra
Az Aspose.Slides for Java biztosítja a IShape interfészt a diámon lévő alakzatok kezeléséhez.
Az példa a setSelectLocked , a setPositionLocked és a setSizeLocked metódusokat hívja true értékkel az automatikus alakzatoknál, illetve a megfelelő zárolásokat a csoportos alakzatok, csatlakozók és képkockák esetén. A csatlakozók a setPositionMove metódust használják a mozgáshoz; a csoportok a setGroupingLocked metódust is alkalmazzák a csoportosítás korlátozására.
A példa betölt egy meglévő PPTX prezentációt, ellenőrzi az egyes diák alakzatgyűjteményét, és elment egy másolatot a beállított korlátozásokkal. A négy kezelt típuson kívüli alakzatok változatlanul maradnak. A ciklus nem járja be a csoporton belüli gyermekalakzatokat.
import com.aspose.slides.*;
Presentation presentation = new Presentation("Sample.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
IAutoShapeLock autoShapeLock = (IAutoShapeLock) autoShape.getShapeLock();
autoShapeLock.setPositionLocked(true);
autoShapeLock.setSelectLocked(true);
autoShapeLock.setSizeLocked(true);
} else if (shape instanceof IGroupShape) {
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) {
IConnector connectorShape = (IConnector) shape;
IConnectorLock connectorShapeLock = connectorShape.getShapeLock();
connectorShapeLock.setPositionMove(true);
connectorShapeLock.setSelectLocked(true);
connectorShapeLock.setSizeLocked(true);
} else if (shape instanceof IPictureFrame) {
IPictureFrame pictureFrame = (IPictureFrame) shape;
IPictureFrameLock pictureFrameLock = (IPictureFrameLock) pictureFrame.getShapeLock();
pictureFrameLock.setPositionLocked(true);
pictureFrameLock.setSelectLocked(true);
pictureFrameLock.setSizeLocked(true);
}
}
}
presentation.save("ProtectedSample.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Védelem eltávolítása
Az alakzat zárolásának 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 IAutoShapeLock , IGroupShapeLock , IConnectorLock valamint IPictureFrameLock segítségével törli a kiválasztás, mozgás és átméretezés korlátozásait. A csoportosítási korlátozást is eltávolítja a false érték átadásával az IGroupShapeLock.setGroupingLocked metódusnak, majd elment egy másolatot a prezentációról. A többi zárolási beállítás változatlan marad.
import com.aspose.slides.*;
Presentation presentation = new Presentation("ProtectedSample.pptx");
try {
for (ISlide slide : presentation.getSlides()) {
for (IShape shape : slide.getShapes()) {
if (shape instanceof IAutoShape) {
IAutoShape autoShape = (IAutoShape) shape;
IAutoShapeLock autoShapeLock = (IAutoShapeLock) autoShape.getShapeLock();
autoShapeLock.setPositionLocked(false);
autoShapeLock.setSelectLocked(false);
autoShapeLock.setSizeLocked(false);
} else if (shape instanceof IGroupShape) {
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) {
IConnector connectorShape = (IConnector) shape;
IConnectorLock connectorShapeLock = connectorShape.getShapeLock();
connectorShapeLock.setPositionMove(false);
connectorShapeLock.setSelectLocked(false);
connectorShapeLock.setSizeLocked(false);
} else if (shape instanceof IPictureFrame) {
IPictureFrame pictureFrame = (IPictureFrame) shape;
IPictureFrameLock pictureFrameLock = (IPictureFrameLock) pictureFrame.getShapeLock();
pictureFrameLock.setPositionLocked(false);
pictureFrameLock.setSelectLocked(false);
pictureFrameLock.setSizeLocked(false);
}
}
}
presentation.save("RemovedProtectionSample.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Következtetés
Az Aspose.Slides for Java lehetővé teszi, hogy egyes alakzatok szerkesztési műveleteit korlátozza, vagy ugyanazokat a korlátozásokat alkalmazza a diákkal. Válassza ki az egyes alakzat típusok által támogatott zárolásokat, és állítsa azok értékét false-ra, ha el szeretné távolítani a korlátozásokat.
FAQ
Kombinálhatom a shape lock-okat és a jelszóvédelmet egyetlen prezentációban?
Igen. A shape lock-ok 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-e a szerkesztést csak bizonyos diákon, anélkül, hogy a többit érintené?
Igen. Csak a kiválasztott diák alakzataira 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 gyermek alakzatra. Ismételje meg ezt bármely beágyazott csoport esetén. A fenti példák csak a dia alakzatgyűjteményét dolgozzák fel, így nem állítanak be zárolásokat az egyes csoporttagokra.