Bloqueo de Presentación
Bloqueo de Presentación
Un uso común de Aspose.Slides es crear, actualizar y guardar presentaciones de Microsoft PowerPoint 2007 (PPTX) como parte de un flujo de trabajo automatizado. Los usuarios de la aplicación que utiliza Aspose.Slides de esta manera tienen acceso a las presentaciones resultantes. Protegerlas contra la edición es una preocupación común. Es importante que las presentaciones generadas automáticamente mantengan su formato y contenido originales.
Esto explica cómo se construyen las presentaciones y las diapositivas y cómo Aspose.Slides para .NET puede aplicar protección a, y luego quitarla de, una presentación. Esta función es única de Aspose.Slides y, en el momento de escribir, no está disponible en Microsoft PowerPoint. Proporciona a los desarrolladores una forma de controlar cómo se utilizan las presentaciones que sus aplicaciones crean.
Composición de una Diapositiva
Una diapositiva PPTX está compuesta por varios componentes como formas automáticas, tablas, objetos OLE, formas agrupadas, marcos de imágenes, marcos de video, conectores y otros elementos disponibles para construir una presentación.
En Aspose.Slides para .NET, cada elemento en una diapositiva se convierte en un objeto Shape. En otras palabras, cada elemento en la diapositiva es un objeto Shape o un objeto derivado del objeto Shape.
La estructura de PPTX es compleja, por lo que a diferencia de PPT, donde se puede usar un bloqueo genérico para todos los tipos de formas, hay diferentes tipos de bloqueos para diferentes tipos de formas. La clase BaseShapeLock es la clase de bloqueo genérico de PPTX. Los siguientes tipos de bloqueos son compatibles en Aspose.Slides para .NET para PPTX.
- AutoShapeLock bloquea formas automáticas.
- ConnectorLock bloquea formas de conector.
- GraphicalObjectLock bloquea objetos gráficos.
- GroupshapeLock bloquea formas grupales.
- PictureFrameLock bloquea marcos de imágenes.
Cualquier acción realizada en todos los objetos Shape en un objeto Presentation se aplica a toda la presentación.
Aplicando y Eliminando Protección
Aplicar protección asegura que una presentación no pueda ser editada. Es una técnica útil para proteger el contenido de una presentación.
Aplicando Protección a Formas PPTX
Aspose.Slides para .NET proporciona la clase Shape para manejar una forma en la diapositiva.
Como se mencionó anteriormente, cada clase de forma tiene una clase de bloqueo asociada para protección. Este artículo se centra en los bloqueos NoSelect, NoMove y NoResize. Estos bloqueos aseguran que las formas no puedan ser seleccionadas (a través de clics del mouse u otros métodos de selección), y no puedan ser movidas o redimensionadas.
Los ejemplos de código que siguen aplican protección a todos los tipos de formas en una presentación.
//Instanciar la clase Presentation que representa un archivo PPTX
PresentationEx pTemplate = new PresentationEx("Aplicando Protección.pptx");//Instanciar la clase Presentation que representa un archivo PPTX
//ISlide objeto para acceder a las diapositivas en la presentación
SlideEx slide = pTemplate.Slides[0];
//IShape objeto para contener formas temporales
ShapeEx shape;
//Recorriendo todas las diapositivas en la presentación
for (int slideCount = 0; slideCount < pTemplate.Slides.Count; slideCount++)
{
slide = pTemplate.Slides[slideCount];
//Recorriendo todas las formas en las diapositivas
for (int count = 0; count < slide.Shapes.Count; count++)
{
shape = slide.Shapes[count];
//si la forma es una forma automática
if (shape is AutoShapeEx)
{
//Casting a forma automática y obteniendo el bloqueo de forma automática
AutoShapeEx Ashp = shape as AutoShapeEx;
AutoShapeLockEx AutoShapeLock = Ashp.ShapeLock;
//Aplicando bloqueos de formas
AutoShapeLock.PositionLocked = true;
AutoShapeLock.SelectLocked = true;
AutoShapeLock.SizeLocked = true;
}
//si la forma es una forma grupal
else if (shape is GroupShapeEx)
{
//Casting a forma grupal y obteniendo el bloqueo de forma grupal
GroupShapeEx Group = shape as GroupShapeEx;
GroupShapeLockEx groupShapeLock = Group.ShapeLock;
//Aplicando bloqueos de formas
groupShapeLock.GroupingLocked = true;
groupShapeLock.PositionLocked = true;
groupShapeLock.SelectLocked = true;
groupShapeLock.SizeLocked = true;
}
//si la forma es un conector
else if (shape is ConnectorEx)
{
//Casting a forma de conector y obteniendo el bloqueo de forma de conector
ConnectorEx Conn = shape as ConnectorEx;
ConnectorLockEx ConnLock = Conn.ShapeLock;
//Aplicando bloqueos de formas
ConnLock.PositionMove = true;
ConnLock.SelectLocked = true;
ConnLock.SizeLocked = true;
}
//si la forma es un marco de imagen
else if (shape is PictureFrameEx)
{
//Casting a forma de marco de imagen y obteniendo el bloqueo de forma de marco de imagen
PictureFrameEx Pic = shape as PictureFrameEx;
PictureFrameLockEx PicLock = Pic.ShapeLock;
//Aplicando bloqueos de formas
PicLock.PositionLocked = true;
PicLock.SelectLocked = true;
PicLock.SizeLocked = true;
}
}
}
//Guardar el archivo de presentación
pTemplate.Save("SampleProtegido.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
Eliminando Protección
La protección aplicada mediante Aspose.Slides para .NET solo puede ser eliminada con Aspose.Slides para .NET. Para desbloquear una forma, establezca el valor del bloqueo aplicado en false. El ejemplo de código que sigue muestra cómo desbloquear formas en una presentación bloqueada.
//Abrir la presentación deseada
PresentationEx pTemplate = new PresentationEx("SampleProtegido.pptx");
//ISlide objeto para acceder a las diapositivas en la presentación
SlideEx slide = pTemplate.Slides[0];
//IShape objeto para contener formas temporales
ShapeEx shape;
//Recorriendo todas las diapositivas en la presentación
for (int slideCount = 0; slideCount < pTemplate.Slides.Count; slideCount++)
{
slide = pTemplate.Slides[slideCount];
//Recorriendo todas las formas en las diapositivas
for (int count = 0; count < slide.Shapes.Count; count++)
{
shape = slide.Shapes[count];
//si la forma es una forma automática
if (shape is AutoShapeEx)
{
//Casting a forma automática y obteniendo el bloqueo de forma automática
AutoShapeEx Ashp = shape as AutoShapeEx;
AutoShapeLockEx AutoShapeLock = Ashp.ShapeLock;
//Aplicando bloqueos de formas
AutoShapeLock.PositionLocked = false;
AutoShapeLock.SelectLocked = false;
AutoShapeLock.SizeLocked = false;
}
//si la forma es una forma grupal
else if (shape is GroupShapeEx)
{
//Casting a forma grupal y obteniendo el bloqueo de forma grupal
GroupShapeEx Group = shape as GroupShapeEx;
GroupShapeLockEx groupShapeLock = Group.ShapeLock;
//Aplicando bloqueos de formas
groupShapeLock.GroupingLocked = false;
groupShapeLock.PositionLocked = false;
groupShapeLock.SelectLocked = false;
groupShapeLock.SizeLocked = false;
}
//si la forma es una forma de conector
else if (shape is ConnectorEx)
{
//Casting a forma de conector y obteniendo el bloqueo de forma de conector
ConnectorEx Conn = shape as ConnectorEx;
ConnectorLockEx ConnLock = Conn.ShapeLock;
//Aplicando bloqueos de formas
ConnLock.PositionMove = false;
ConnLock.SelectLocked = false;
ConnLock.SizeLocked = false;
}
//si la forma es un marco de imagen
else if (shape is PictureFrameEx)
{
//Casting a forma de marco de imagen y obteniendo el bloqueo de forma de marco de imagen
PictureFrameEx Pic = shape as PictureFrameEx;
PictureFrameLockEx PicLock = Pic.ShapeLock;
//Aplicando bloqueos de formas
PicLock.PositionLocked = false;
PicLock.SelectLocked = false;
PicLock.SizeLocked = false;
}
}
}
//Guardar el archivo de presentación
pTemplate.Save("SampleEliminarProtección.pptx", Aspose.Slides.Export.SaveFormat.Pptx);