La protección de los documentos digitales es una preocupación común en estos días. No desea que ninguna persona no autorizada cambie el contenido de sus documentos. Por lo tanto, se hace inevitable utilizar mecanismos de protección efectivos. En consecuencia, en este artículo, le mostraremos cómo proteger las presentaciones PPT/PPTX desde sus aplicaciones .NET. Lo lograremos bloqueando las formas en un PowerPoint PPT o PPTX en C#.
- API de C# para bloquear formas en PowerPoint PPT
- Bloquear formas PPT de PowerPoint en C#
- Desbloquear formas en PowerPoint PPT
API C# .NET para bloquear formas en PowerPoint PPT
Para bloquear y desbloquear presentaciones de PowerPoint, usaremos Aspose.Slides for .NET. La API proporciona una variedad de funciones para crear y manipular presentaciones de PowerPoint. Puede descargar la DLL de la API o instalarla mediante NuGet.
PM> Install-Package Aspose.Slides.NET
Bloquear formas en PowerPoint PPT en C#
Una presentación de PowerPoint puede contener una variedad de elementos como texto, imágenes, audio, etc. Aspose.Slides for .NET toma cada elemento como una Forma o un objeto derivado de la Forma. Entonces, para proteger el contenido de las presentaciones, necesitamos bloquear todas sus formas. Aspose.Slides proporciona bloqueos apropiados para los siguientes tipos de formas.
- Forma automática
- Forma de grupo
- Conector
- Marco
Los siguientes pasos muestran cómo bloquear formas en un PPT de PowerPoint en C#.
- Primero, cargue el archivo PPT/PPTX usando la clase Presentation.
- Luego, obtenga diapositivas en la presentación usando la propiedad Presentation.Slides.
- Para cada diapositiva, acceda a sus formas utilizando la colección ISlide.Shapes.
- Para cada forma de la colección, realice los siguientes pasos:
- Compruebe el tipo de la forma.
- Utilice el candado adecuado según el tipo de forma.
- Finalmente, guarde la presentación usando el método Presentation.Save(string, SaveFormat).
El siguiente ejemplo de código muestra cómo bloquear formas en un PowerPoint PPTX usando C#.
// Cargar presentación
using (Presentation presentation = new Presentation("presentation.pptx"))
{
// Objeto IShape para contener formas temporales
IShape shape;
// Recorrer todas las diapositivas de la presentación
for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
{
var slide = presentation.Slides[slideCount];
// Recorra todas las formas en las diapositivas
for (int count = 0; count < slide.Shapes.Count; count++)
{
shape = slide.Shapes[count];
// Si la forma es forma automática
if (shape is IAutoShape)
{
// Escriba moldear a forma automática y obtenga bloqueo de forma automática
IAutoShape Ashp = shape as IAutoShape;
IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;
// Aplicar bloqueos de forma
AutoShapeLock.PositionLocked = true;
AutoShapeLock.SelectLocked = true;
AutoShapeLock.SizeLocked = true;
}
// Si la forma es forma de grupo
else if (shape is IGroupShape)
{
// Escriba cast to group shape y obtenga el bloqueo de forma de grupo
IGroupShape Group = shape as IGroupShape;
IGroupShapeLock groupShapeLock = Group.ShapeLock;
// Aplicar bloqueos de forma
groupShapeLock.GroupingLocked = true;
groupShapeLock.PositionLocked = true;
groupShapeLock.SelectLocked = true;
groupShapeLock.SizeLocked = true;
}
// Si la forma es un conector
else if (shape is IConnector)
{
// Escriba cast a la forma del conector y obtenga el bloqueo de la forma del conector
IConnector Conn = shape as IConnector;
IConnectorLock ConnLock = Conn.ShapeLock;
// Aplicar bloqueos de forma
ConnLock.PositionMove = true;
ConnLock.SelectLocked = true;
ConnLock.SizeLocked = true;
}
// Si la forma es un marco de imagen
else if (shape is IPictureFrame)
{
// Escriba moldear a la forma del marco de la imagen y obtenga el bloqueo de la forma del marco de la imagen
IPictureFrame Pic = shape as IPictureFrame;
IPictureFrameLock PicLock = Pic.ShapeLock;
// Aplicar bloqueos de forma
PicLock.PositionLocked = true;
PicLock.SelectLocked = true;
PicLock.SizeLocked = true;
}
}
}
// Guardar presentación
presentation.Save("locked-ppt.pptx", SaveFormat.Pptx);
}
Desbloquear presentaciones de PowerPoint en C#
Para desbloquear las formas y hacerlas editables, deberá desactivar los bloqueos. Tenga en cuenta que si ha bloqueado las formas usando Aspose.Slides for .NET, tendrá que usar la misma API para desbloquear. El desbloqueo se realiza deshabilitando los bloqueos de forma y estableciendo sus valores en falso.
El siguiente ejemplo de código muestra cómo desbloquear formas en un archivo PPTX en C#.
// Cargar presentación
using (Presentation presentation = new Presentation("locked-ppt.ppt"))
{
// Objeto IShape para contener formas temporales
IShape shape;
// Recorrer todas las diapositivas de la presentación
for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
{
var slide = presentation.Slides[slideCount];
// Recorra todas las formas en las diapositivas
for (int count = 0; count < slide.Shapes.Count; count++)
{
shape = slide.Shapes[count];
// Si la forma es forma automática
if (shape is IAutoShape)
{
// Escriba moldear a forma automática y obtenga bloqueo de forma automática
IAutoShape Ashp = shape as IAutoShape;
IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;
// Desbloquear forma
AutoShapeLock.PositionLocked = false;
AutoShapeLock.SelectLocked = false;
AutoShapeLock.SizeLocked = false;
}
// Si la forma es forma de grupo
else if (shape is IGroupShape)
{
// Escriba cast to group shape y obtenga el bloqueo de forma de grupo
IGroupShape Group = shape as IGroupShape;
IGroupShapeLock groupShapeLock = Group.ShapeLock;
// Desbloquear forma
groupShapeLock.GroupingLocked = false;
groupShapeLock.PositionLocked = false;
groupShapeLock.SelectLocked = false;
groupShapeLock.SizeLocked = false;
}
// Si la forma es un conector
else if (shape is IConnector)
{
// Escriba cast a la forma del conector y obtenga el bloqueo de la forma del conector
IConnector Conn = shape as IConnector;
IConnectorLock ConnLock = Conn.ShapeLock;
// Desbloquear forma
ConnLock.PositionMove = false;
ConnLock.SelectLocked = false;
ConnLock.SizeLocked = false;
}
// Si la forma es un marco de imagen
else if (shape is IPictureFrame)
{
// Escriba moldear a la forma del marco de la imagen y obtenga el bloqueo de la forma del marco de la imagen
IPictureFrame Pic = shape as IPictureFrame;
IPictureFrameLock PicLock = Pic.ShapeLock;
// Desbloquear forma
PicLock.PositionLocked = false;
PicLock.SelectLocked = false;
PicLock.SizeLocked = false;
}
}
}
// Guardar presentación
presentation.Save("unlocked-ppt.ppt", SaveFormat.Ppt);
}
Obtenga una licencia gratis
Utilice Aspose.Slides for .NET sin limitaciones de evaluación al obtener una licencia temporal gratuita.
Conclusión
En este artículo, ha aprendido a bloquear formas en PowerPoint PPT/PPTX en C#. Además, ha visto cómo desproteger las presentaciones desbloqueando sus formas mediante programación. Aparte de eso, puede explorar más sobre Aspose.Slides for .NET visitando la documentación. Además, puede publicar sus consultas en nuestro foro.