Bloquear formas de desbloqueo en PowerPoint PPT en C#

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 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.

Ver también