Megakadályozza a prezentáció szerkesztését alakzatzárolással

Háttér

Az Aspose.Slides gyakori felhasználása, hogy Microsoft PowerPoint (PPTX) prezentációkat hozzon létre, frissítsen és mentse automatizált munkafolyamat részeként. Azok a felhasználók, akik az alkalmazásokban így használják az Aspose.Slides‑t, hozzáférnek a létrehozott prezentációkhoz, ezért a szerkesztés elleni védelem gyakori aggodalom. Fontos, hogy az automatikusan generált prezentációk megőrizzék eredeti formázásukat és tartalmukat.

Ez a cikk elmagyarázza, hogyan épülnek fel a prezentációk és a diák, valamint hogyan tud az Aspose.Slides for Java védelmet alkalmazni egy prezentációra, majd később eltávolítani azt. Fejlesztők számára lehetőséget biztosít arra, hogy szabályozzák a saját alkalmazásaik által generált prezentációk használatát.

Dia felépítése

Egy prezentációs dia olyan komponensekből áll, mint az automatikus alakzatok, táblázatok, OLE-objektumok, csoportos 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 Java‑ban a dia minden eleme egy olyan objektummal van reprezentálva, amely megvalósítja a IShape interfészt, vagy örökli egy osztályt, amely ezt teszi.

A PPTX szerkezete összetett, ezért a PPT‑től eltérően, ahol egy általános zárcsatorna használható minden alakzattípushoz, a különböző alakzattípusokhoz eltérő zárak szükségesek. A IBaseShapeLock interfész a PPTX általános zárolási osztálya. Az alábbi zár típusok támogatottak az Aspose.Slides for Java‑ban PPTX esetén:

A Presentation objektum összes alakzaton végzett művelet az egész prezentációra vonatkozik.

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

A védelem alkalmazása biztosítja, hogy a prezentációt ne lehessen szerkeszteni. Ez hasznos technika a prezentáció tartalmának védelmére.

Védelem alkalmazása PPTX alakzatokra

Az Aspose.Slides for Java biztosítja a IShape interfészt a dia alakzataival való munkához.

Ahogy korábban említettük, minden alakzat osztálynak van egy hozzá tartozó alakzat-zár osztálya a védelemhez. Ebben a cikkben a NoSelect, NoMove és NoResize zárakra koncentrálunk. Ezek a zárak biztosítják, hogy az alakzatok ne legyenek kiválaszthatók (egérkattintással vagy más kiválasztási módszerrel), valamint ne legyenek áthelyezhetők vagy átméretezhetők.

Az alábbi kódminta a prezentáció összes alakzattípusára alkalmaz védelmet.

// Példányosítsa a Presentation osztályt, amely egy PPTX fájlt képvisel.
Presentation presentation = new Presentation("Sample.pptx");

// Bejárja a prezentáció összes diáját.
for (ISlide slide : presentation.getSlides()) {

    // Bejárja a dia összes alakzatát.
    for (IShape shape : slide.getShapes()) {
        if (shape instanceof IAutoShape) {
            // Átalakítja az alakzatot autoshapre, és lekéri a alakzat zárolását.
            IAutoShape autoShape = (IAutoShape) shape;
            IAutoShapeLock autoShapeLock = (IAutoShapeLock) autoShape.getShapeLock();

            autoShapeLock.setPositionLocked(true);
            autoShapeLock.setSelectLocked(true);
            autoShapeLock.setSizeLocked(true);
        } else if (shape instanceof IGroupShape) {
            // Átalakítja az alakzatot csoportos alakzattá, és lekéri a alakzat zárolását.
            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) {
            // Átalakítja az alakzatot csatlakozó alakzattá, és lekéri a alakzat zárolását.
            IConnector connectorShape = (IConnector) shape;
            IConnectorLock connectorShapeLock = connectorShape.getShapeLock();

            connectorShapeLock.setPositionMove(true);
            connectorShapeLock.setSelectLocked(true);
            connectorShapeLock.setSizeLocked(true);
        } else if (shape instanceof IPictureFrame) {
            // Átalakítja az alakzatot képkockává, és lekéri a alakzat zárolását.
            IPictureFrame pictureFrame = (IPictureFrame) shape;
            IPictureFrameLock pictureFrameLock = (IPictureFrameLock) pictureFrame.getShapeLock();

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

// Mentse a prezentáció fájlt.
presentation.save("ProtectedSample.pptx", SaveFormat.Pptx);
presentation.dispose();

Védelem eltávolítása

Az alakzat feloldásához állítsa a beállított zár értékét false‑ra. Az alábbi kódminta bemutatja, hogyan lehet feloldani a zárakat egy zárolt prezentációban.

// Példányosítsa a Presentation osztályt, amely egy PPTX fájlt képvisel.
Presentation presentation = new Presentation("ProtectedSample.pptx");

// Bejárja a prezentáció összes diáját.
for (ISlide slide : presentation.getSlides()) {

    // Bejárja a dia összes alakzatát.
    for (IShape shape : slide.getShapes()) {
        if (shape instanceof IAutoShape) {
            // Átalakítja az alakzatot autoshapere, és lekéri a alakzat zárolását.
            IAutoShape autoShape = (IAutoShape) shape;
            IAutoShapeLock autoShapeLock = (IAutoShapeLock) autoShape.getShapeLock();

            autoShapeLock.setPositionLocked(false);
            autoShapeLock.setSelectLocked(false);
            autoShapeLock.setSizeLocked(false);
        } else if (shape instanceof IGroupShape) {
            // Átalakítja az alakzatot csoportos alakzattá, és lekéri a alakzat zárolását.
            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) {
            // Átalakítja az alakzatot csatlakozó alakzattá, és lekéri a alakzat zárolását.
            IConnector connectorShape = (IConnector) shape;
            IConnectorLock connectorShapeLock = connectorShape.getShapeLock();

            connectorShapeLock.setPositionMove(false);
            connectorShapeLock.setSelectLocked(false);
            connectorShapeLock.setSizeLocked(false);
        } else if (shape instanceof IPictureFrame) {
            // Átalakítja az alakzatot képkockává, és lekéri a alakzat zárolását.
            IPictureFrame pictureFrame = (IPictureFrame) shape;
            IPictureFrameLock pictureFrameLock = (IPictureFrameLock) pictureFrame.getShapeLock();

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

// Mentse a prezentáció fájlt.
presentation.save("RemovedProtectionSample.pptx", SaveFormat.Pptx);
presentation.dispose();

Összefoglalás

Az Aspose.Slides több lehetőséget kínál a prezentáció alakzatainak védelmére. Egyedi alakzatot is le lehet zárolni, vagy végig lehet iterálni a prezentáció összes alakzatán, és egyenként zárolni őket, így hatékonyan biztosítható a teljes fájl. A védelmet a zár értékének false‑ra állításával lehet eltávolítani.

GYIK

Kombinálhatok alakzat-zárakat és jelszóvédelmet ugyanabban a prezentációban?

Igen. A zárak korlátozzák a fájlban lévő objektumok szerkesztését, míg a jelszóvédelem a megnyitás és/vagy a módosítások mentésének hozzáférését szabályozza. Ezek a mechanizmusok kiegészítik egymást és együtt működnek.

Korlátozhatom a szerkesztést konkrét diákon anélkül, hogy mások érintettek lennének?

Igen. Alkalmazzon zárakat a kiválasztott diák alakzataira; a többi dia továbbra szerkeszthető marad.

Alkalmazhatók a zárak csoportos objektumokra és csatlakozókra?

Igen. Dedikált zár típusok támogatottak a csoportok, csatlakozók, grafikus objektumok és egyéb alakzattípusok számára.