Restringir la edición de presentaciones con bloqueos de forma en Android
Visión general
Un uso común de Aspose.Slides for Android via Java es crear, actualizar y guardar presentaciones de PowerPoint (PPTX) como parte de un flujo de trabajo automatizado. Cuando los usuarios reciben estas presentaciones, restringir los cambios en las formas puede ayudar a preservar el diseño y contenido previstos.
Composición de una diapositiva
Una diapositiva de presentación está compuesta por componentes como autoshapes, tablas, objetos OLE, formas agrupadas, marcos de imagen, marcos de video, conectores y otros elementos utilizados para crear una presentación. En Aspose.Slides for Android via Java, cada elemento en una diapositiva está representado por un objeto que implementa la interfaz IShape o hereda de una clase que lo hace.
Los diferentes tipos de forma exponen distintas opciones de bloqueo. La interfaz IBaseShapeLock es la interfaz base para los bloqueos de forma. Aspose.Slides for Android via Java proporciona las siguientes interfaces de bloqueo:
- IAutoShapeLock bloquea autoshapes.
- IConnectorLock bloquea conectores.
- IGraphicalObjectLock bloquea objetos gráficos.
- IGroupShapeLock bloquea formas agrupadas.
- IPictureFrameLock bloquea marcos de imagen.
Para aplicar bloqueos en una Presentation, recorra sus diapositivas y establezca los bloqueos apropiados en cada forma compatible.
Aplicar y eliminar protección
Los bloqueos de forma restringen operaciones como seleccionar, mover y cambiar el tamaño de las formas. No hacen que toda la presentación sea no editable.
Aplicar protección a las formas PPTX
Aspose.Slides for Android via Java proporciona la interfaz IShape para trabajar con formas en una diapositiva.
El ejemplo llama a setSelectLocked , setPositionLocked y setSizeLocked con true para autoshapes, con bloqueos equivalentes para formas agrupadas, conectores y marcos de imagen. Los conectores usan setPositionMove para el movimiento; los grupos también usan setGroupingLocked para restringir la agrupación.
El ejemplo carga una presentación PPTX existente, comprueba las formas en la colección de formas de cada diapositiva y guarda una copia con estas restricciones aplicadas. Las formas fuera de los cuatro tipos manejados se dejan sin cambios. El bucle no recorre las formas hijas dentro de un grupo.
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();
}
Eliminar protección
Para eliminar un bloqueo de forma, establezca su valor a false. El siguiente ejemplo carga una presentación con bloqueos de forma y elimina las restricciones de selección, movimiento y cambio de tamaño mediante IAutoShapeLock, IGroupShapeLock, IConnectorLock y IPictureFrameLock. También elimina la restricción de agrupación pasando false a IGroupShapeLock.setGroupingLocked y guarda una copia de la presentación. Otros ajustes de bloqueo se dejan sin cambios.
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();
}
Conclusión
Aspose.Slides for Android via Java le permite restringir operaciones de edición específicas en formas individuales o aplicar las mismas restricciones a través de diapositivas. Elija los bloqueos compatibles con cada tipo de forma y establezca sus valores a false cuando necesite eliminar esas restricciones.
FAQ
¿Puedo combinar bloqueos de forma y protección con contraseña en la misma presentación?
Sí. Los bloqueos de forma restringen operaciones de edición específicas, mientras que la protección con contraseña puede restringir la apertura o modificación de la presentación. Puede usar ambos en el mismo archivo.
¿Puedo restringir la edición en diapositivas específicas sin afectar a otras?
Sí. Aplique los bloqueos solo a las formas de las diapositivas seleccionadas. Esto no cambia la configuración de bloqueo en otras diapositivas.
¿Cómo puedo aplicar bloqueos a formas individuales dentro de un grupo?
Recorra la colección devuelta por el método getShapes del grupo y aplique los bloqueos apropiados a cada forma hija. Repita esto para cualquier grupo anidado. Los ejemplos anteriores procesan solo la colección de formas de la diapositiva, por lo que no establecen bloqueos en miembros individuales del grupo.