A proteção de documentos digitais é uma preocupação comum nos dias de hoje. Você não quer que nenhuma pessoa não autorizada altere o conteúdo de seus documentos. Portanto, torna-se inevitável a utilização de mecanismos de proteção eficazes. Assim, neste artigo, mostraremos como proteger apresentações PPT/PPTX de dentro de seus aplicativos .NET. Faremos isso bloqueando as formas em um PowerPoint PPT ou PPTX em C#.
- API C# para bloquear formas no PowerPoint PPT
- Bloquear formas PPT do PowerPoint em C#
- Desbloquear formas no PowerPoint PPT
API C# .NET para bloquear formas no PowerPoint PPT
Para bloquear e desbloquear apresentações do PowerPoint, usaremos Aspose.Slides for .NET. A API fornece uma variedade de recursos para criar e manipular apresentações do PowerPoint. Você pode baixar DLL da API ou instalá-la usando NuGet.
PM> Install-Package Aspose.Slides.NET
Bloquear formas no PowerPoint PPT em C#
Uma apresentação do PowerPoint pode conter uma variedade de elementos, como texto, imagens, áudio, etc. Aspose.Slides para .NET leva cada elemento como uma forma ou um objeto derivado de forma. Portanto, para proteger o conteúdo das apresentações, precisamos bloquear todas as suas formas. Aspose.Slides fornece bloqueios apropriados para os seguintes tipos de formas.
- Forma automática
- Forma do Grupo
- Conector
- Porta-retrato
As etapas a seguir mostram como bloquear formas em um PowerPoint PPT em C#.
- Primeiro, carregue o arquivo PPT/PPTX usando a classe Presentation.
- Em seguida, obtenha slides na apresentação usando a propriedade Presentation.Slides.
- Para cada slide, acesse suas formas usando a coleção ISlide.Shapes.
- Para cada forma na coleção, execute as seguintes etapas:
- Verifique o tipo da forma.
- Use trava apropriada de acordo com o tipo de forma.
- Finalmente, salve a apresentação usando o método Presentation.Save(string, SaveFormat).
O exemplo de código a seguir mostra como bloquear formas em um PowerPoint PPTX usando C#.
// Carregar apresentação
using (Presentation presentation = new Presentation("presentation.pptx"))
{
// Objeto IShape para segurar formas temporárias
IShape shape;
// Percorra todos os slides da apresentação
for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
{
var slide = presentation.Slides[slideCount];
// Percorra todas as formas nos slides
for (int count = 0; count < slide.Shapes.Count; count++)
{
shape = slide.Shapes[count];
// Se a forma for forma automática
if (shape is IAutoShape)
{
// Digite cast to auto shape e obtenha o auto shape lock
IAutoShape Ashp = shape as IAutoShape;
IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;
// Aplicar bloqueios de forma
AutoShapeLock.PositionLocked = true;
AutoShapeLock.SelectLocked = true;
AutoShapeLock.SizeLocked = true;
}
// Se a forma for a forma do grupo
else if (shape is IGroupShape)
{
// Digite cast to group shape e obtenha o bloqueio de forma de grupo
IGroupShape Group = shape as IGroupShape;
IGroupShapeLock groupShapeLock = Group.ShapeLock;
// Aplicar bloqueios de forma
groupShapeLock.GroupingLocked = true;
groupShapeLock.PositionLocked = true;
groupShapeLock.SelectLocked = true;
groupShapeLock.SizeLocked = true;
}
// Se a forma é um conector
else if (shape is IConnector)
{
// Digite cast para a forma do conector e obtenha o bloqueio da forma do conector
IConnector Conn = shape as IConnector;
IConnectorLock ConnLock = Conn.ShapeLock;
// Aplicar bloqueios de forma
ConnLock.PositionMove = true;
ConnLock.SelectLocked = true;
ConnLock.SizeLocked = true;
}
// Se a forma é moldura
else if (shape is IPictureFrame)
{
// Digite cast para a forma da moldura e obtenha o bloqueio da forma da moldura
IPictureFrame Pic = shape as IPictureFrame;
IPictureFrameLock PicLock = Pic.ShapeLock;
// Aplicar bloqueios de forma
PicLock.PositionLocked = true;
PicLock.SelectLocked = true;
PicLock.SizeLocked = true;
}
}
}
// Salvar apresentação
presentation.Save("locked-ppt.pptx", SaveFormat.Pptx);
}
Desbloqueie apresentações do PowerPoint em C#
Para desbloquear as formas e torná-las editáveis, você precisará desativar os bloqueios. Observe que, se você bloqueou as formas usando o Aspose.Slides para .NET, terá que usar a mesma API para desbloquear. O desbloqueio é feito desabilitando os bloqueios de forma e definindo seus valores como falsos.
O exemplo de código a seguir mostra como desbloquear formas em um arquivo PPTX em C#.
// Carregar apresentação
using (Presentation presentation = new Presentation("locked-ppt.ppt"))
{
// Objeto IShape para segurar formas temporárias
IShape shape;
// Percorra todos os slides da apresentação
for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
{
var slide = presentation.Slides[slideCount];
// Percorra todas as formas nos slides
for (int count = 0; count < slide.Shapes.Count; count++)
{
shape = slide.Shapes[count];
// Se a forma for forma automática
if (shape is IAutoShape)
{
// Digite cast to auto shape e obtenha o auto shape lock
IAutoShape Ashp = shape as IAutoShape;
IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;
// Forma de desbloqueio
AutoShapeLock.PositionLocked = false;
AutoShapeLock.SelectLocked = false;
AutoShapeLock.SizeLocked = false;
}
// Se a forma for a forma do grupo
else if (shape is IGroupShape)
{
// Digite cast to group shape e obtenha o bloqueio de forma de grupo
IGroupShape Group = shape as IGroupShape;
IGroupShapeLock groupShapeLock = Group.ShapeLock;
// Forma de desbloqueio
groupShapeLock.GroupingLocked = false;
groupShapeLock.PositionLocked = false;
groupShapeLock.SelectLocked = false;
groupShapeLock.SizeLocked = false;
}
// Se a forma for um conector
else if (shape is IConnector)
{
// Digite cast para a forma do conector e obtenha o bloqueio da forma do conector
IConnector Conn = shape as IConnector;
IConnectorLock ConnLock = Conn.ShapeLock;
// Forma de desbloqueio
ConnLock.PositionMove = false;
ConnLock.SelectLocked = false;
ConnLock.SizeLocked = false;
}
// Se a forma é moldura
else if (shape is IPictureFrame)
{
// Digite cast para a forma da moldura e obtenha o bloqueio da forma da moldura
IPictureFrame Pic = shape as IPictureFrame;
IPictureFrameLock PicLock = Pic.ShapeLock;
// Forma de desbloqueio
PicLock.PositionLocked = false;
PicLock.SelectLocked = false;
PicLock.SizeLocked = false;
}
}
}
// Salvar apresentação
presentation.Save("unlocked-ppt.ppt", SaveFormat.Ppt);
}
Obtenha uma licença gratuita
Use Aspose.Slides para .NET sem limitações de avaliação obtendo uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como bloquear formas no PowerPoint PPT/PPTX em C#. Além disso, você viu como desproteger as apresentações desbloqueando suas formas programaticamente. Além disso, você pode explorar mais sobre o Aspose.Slides para .NET visitando a documentação. Além disso, você pode postar suas dúvidas em nosso fórum.