Prezentáció szerkesztésének korlátozása alakzatzárolásokkal Androidon

Áttekintés

Az Aspose.Slides for Android via Java gyakori felhasználása, hogy PowerPoint (PPTX) prezentációkat hozzon létre, frissítsen és mentse egy 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 szervezve a diákon, és hogyan lehet alakzatzárakat alkalmazni és eltávolítani egy PPTX prezentációban. Ezek a zárak lehetővé teszik egyes alakzatok szerkesztési műveleteinek korlátozását.

Dia felépítése

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, kapcsolók és egyéb elemek, amelyek a prezentáció építésére szolgálnak. Az Aspose.Slides for Android via Java-ban a dia minden eleme egy olyan objektummal van reprezentálva, amely megvalósítja az IShape interfészt vagy onnan származtatott osztályt.

A különböző alakzattípusok különféle zárolási lehetőségeket kínálnak. Az IBaseShapeLock interfész az alakzatzárolások alapinterfésze. Az Aspose.Slides for Android via Java a következő zárolási interfészeket biztosítja:

A Presentation zárolások alkalmazásához iteráljon a diákon, és állítsa be a megfelelő zárolásokat minden támogatott alakzatra.

Védelem alkalmazása és eltávolítása

Alakzatzárolások korlátozzák az olyan műveleteket, mint 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 Android via Java biztosítja az IShape interfészt az alakzatokkal való munkához egy dián.

A példa meghívja a setSelectLocked a setPositionLocked és a setSizeLocked metódusokat true értékkel az automatikus alakzatoknál, valamint a megfelelő zárolásokat a csoportos alakzatoknál, a csatlakozóknál és a képkockáknál. A csatlakozók a setPositionMove metódust használják a mozgáshoz; a csoportok pedig a setGroupingLocked metódust a csoportosítás korlátozásához.

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 alkalmazott korlátozásokkal. Az a négy kezelt típuson kívüli alakzatok változatlanul maradnak. A ciklus nem járja be a csoporton belüli gyermek alakzatokat.

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 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 törli a kiválasztás, a mozgás és az átméretezés korlátozásait az IAutoShapeLock​, az IGroupShapeLock​, az IConnectorLock​ és az IPictureFrameLock​ segítségével. A csoportosítási korlátozást is eltávolítja, a false értéket átadva az IGroupShapeLock.setGroupingLocked metódusnak, majd elment egy másolatot a prezentációról. A többi zár 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 Android via Java lehetővé teszi, hogy egyes alakzatok szerkesztési műveleteit korlátozza, vagy ugyanazokat a korlátozásokat alkalmazza a diákon. Válassza ki az egyes alakzattípusokhoz támogatott zárolásokat, és állítsa be az értéküket false-ra, ha el akarja távolítani ezeket a korlátozásokat.

GYIK

Kombinálhatok-e alakzatzárolásokat és jelszóvédelem egyazon prezentációban?

Igen. Az alakzatzárolások specifikus 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 bizonyos diákon anélkül, hogy a többit érinteném?

Igen. Csak a kiválasztott diákon lévő alakzatokra alkalmazzon zárolásokat. Ez nem változtatja meg a többi dia zár beállításait.

Hogyan alkalmazhatok zárolásokat egyéni 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 minden beágyazott csoportnál. A fenti példák csak a dia alakzatgyűjteményét dolgozzák fel, így nem állítanak be zárolásokat az egyéni csoporttagokra.