Beperk bewerkingen van presentaties met vormvergrendelingen in Java

Achtergrond

Een veelvoorkomend gebruik van Aspose.Slides for Java is het maken, bijwerken en opslaan van PowerPoint (PPTX)-presentaties als onderdeel van een geautomatiseerde workflow. Wanneer gebruikers deze presentaties ontvangen, kan het beperken van wijzigingen aan vormen helpen de beoogde lay-out en inhoud te behouden.

Dit artikel legt uit hoe vormen zijn georganiseerd op dia’s en hoe u vormvergrendelingen kunt toepassen en verwijderen in een PPTX‑presentatie. Deze vergrendelingen stellen u in staat specifieke bewerkingsbewerkingen op individuele vormen te beperken.

Samenstelling van een dia

Een presentatiedia bestaat uit componenten zoals autovormen, tabellen, OLE‑objecten, gegroepeerde vormen, foto‑frames, video‑frames, connectoren en andere elementen die worden gebruikt om een presentatie te bouwen. In Aspose.Slides for Java wordt elk element op een dia vertegenwoordigd door een object dat de IShape‑interface implementeert of er van erft.

Verschillende vormtypen bieden verschillende vergrendelingsopties. De IBaseShapeLock‑interface is de basis‑interface voor vormvergrendelingen. Aspose.Slides for Java biedt de volgende vergrendelings‑interfaces:

Om vergrendelingen toe te passen op een Presentation, doorloopt u de dia’s en stelt u de juiste vergrendelingen in op elke ondersteunde vorm.

Toepassen en verwijderen van bescherming

Vormvergrendelingen beperken bewerkingen zoals het selecteren, verplaatsen en wijzigen van de grootte van vormen. Ze maken de hele presentatie niet niet-bewerkbaar.

Bescherming toepassen op PPTX‑vormen

Aspose.Slides for Java biedt de IShape‑interface om te werken met vormen op een dia.

Het voorbeeld roept setSelectLocked , setPositionLocked en setSizeLocked aan met true voor autovormen, met equivalente vergrendelingen voor groepsvormen, connectoren en foto‑frames. Connectoren gebruiken setPositionMove voor beweging; groepen gebruiken ook setGroupingLocked om groeperen te beperken.

Het voorbeeld laadt een bestaande PPTX‑presentatie, controleert de vormen in de vormverzameling van elke dia en slaat een kopie op met deze beperkingen toegepast. Vormen buiten de vier behandelde typen blijven ongewijzigd. De lus doorloopt niet de onderliggende vormen binnen een groep.

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();
}

Bescherming verwijderen

Om een vormvergrendeling te verwijderen, stelt u de waarde in op false. Het volgende voorbeeld laadt een presentatie met vormvergrendelingen en wist de selectie‑, verplaatsings‑ en grootte‑beperkingen via IAutoShapeLock, IGroupShapeLock, IConnectorLock en IPictureFrameLock. Het verwijdert ook de groeperingsbeperking door false door te geven aan IGroupShapeLock.setGroupingLocked en slaat een kopie van de presentatie op. Andere vergrendelingsinstellingen blijven ongewijzigd.

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();
}

Conclusie

Aspose.Slides for Java stelt u in staat specifieke bewerkingsbewerkingen op individuele vormen te beperken of dezelfde beperkingen over dia’s toe te passen. Kies de vergrendelingen die door elk vormtype worden ondersteund en stel hun waarden in op false wanneer u die beperkingen wilt verwijderen.

FAQ

Kan ik vormvergrendelingen en wachtwoordbeveiliging combineren in dezelfde presentatie?

Ja. Vormvergrendelingen beperken specifieke bewerkingsbewerkingen, terwijl wachtwoordbeveiliging het openen of wijzigen van de presentatie kan beperken. U kunt beide in hetzelfde bestand gebruiken.

Kan ik bewerking beperken op specifieke dia’s zonder andere te beïnvloeden?

Ja. Pas vergrendelingen alleen toe op vormen op de geselecteerde dia’s. Dit verandert de vergrendelingsinstellingen op andere dia’s niet.

Hoe kan ik vergrendelingen toepassen op individuele vormen binnen een groep?

Doorloop de collectie die wordt geretourneerd door de getShapes‑methode van de groep en pas de juiste vergrendelingen toe op elke onderliggende vorm. Herhaal dit voor eventuele geneste groepen. De bovenstaande voorbeelden verwerken alleen de vormverzameling van de dia, waardoor ze geen vergrendelingen instellen op individuele groepsleden.