Zablokuj odblokuj kształty w programie PowerPoint PPT w języku C#

Ochrona dokumentów cyfrowych jest obecnie powszechnym problemem. Nie chcesz, aby jakakolwiek nieupoważniona osoba zmieniała treść Twoich dokumentów. Dlatego nieuniknione staje się stosowanie skutecznych mechanizmów ochronnych. W związku z tym w tym artykule pokażemy, jak chronić prezentacje PPT/PPTX z poziomu aplikacji .NET. Osiągniemy to, blokując kształty w programie PowerPoint PPT lub PPTX w języku C#.

C# .NET API do blokowania kształtów w programie PowerPoint PPT

Aby zablokować i odblokować prezentacje PowerPoint, użyjemy Aspose.Slides for .NET. Interfejs API zapewnia szereg funkcji do tworzenia i manipulowania prezentacjami programu PowerPoint. Możesz pobrać bibliotekę DLL interfejsu API lub zainstalować ją za pomocą NuGet.

PM> Install-Package Aspose.Slides.NET

Zablokuj kształty w programie PowerPoint PPT w języku C#

Prezentacja programu PowerPoint może zawierać różne elementy, takie jak tekst, obrazy, dźwięk itp. Aspose.Slides dla platformy .NET przyjmuje każdy element jako kształt lub abject wywodzący się z kształtu. Aby więc chronić zawartość prezentacji, musimy zablokować wszystkie ich kształty. Aspose.Slides zapewnia odpowiednie zamki dla następujących typów kształtów.

  • Automatyczny kształt
  • Kształt grupy
  • Złącze
  • Ramka

Poniższe kroki pokazują, jak zablokować kształty w programie PowerPoint PPT w języku C#.

  • Najpierw załaduj plik PPT/PPTX przy użyciu klasy Presentation.
  • Następnie pobierz slajdy w prezentacji za pomocą właściwości Presentation.Slides.
  • Dla każdego slajdu uzyskaj dostęp do jego kształtów za pomocą kolekcji ISlide.Shapes.
  • Dla każdego kształtu w kolekcji wykonaj następujące czynności:
    • Sprawdź rodzaj kształtu.
    • Użyj odpowiedniego zamka w zależności od rodzaju kształtu.
  • Na koniec zapisz prezentację przy użyciu metody Presentation.Save(string, SaveFormat).

Poniższy przykładowy kod pokazuje, jak blokować kształty w programie PowerPoint PPTX przy użyciu języka C#.

// Załaduj prezentację
using (Presentation presentation = new Presentation("presentation.pptx"))
{
    // Obiekt IShape do przechowywania tymczasowych kształtów
    IShape shape;

    // Przejrzyj wszystkie slajdy w prezentacji
   for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
    {
        var slide = presentation.Slides[slideCount];

        // Przejrzyj wszystkie kształty na slajdach
       for (int count = 0; count < slide.Shapes.Count; count++)
        {
            shape = slide.Shapes[count];

            // Jeśli kształt jest automatycznym kształtem
            if (shape is IAutoShape)
            {
                // Wpisz rzut na automatyczny kształt i uzyskaj automatyczną blokadę kształtu
                IAutoShape Ashp = shape as IAutoShape;
                IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;

                // Zastosuj blokady kształtu
                AutoShapeLock.PositionLocked = true;
                AutoShapeLock.SelectLocked = true;
                AutoShapeLock.SizeLocked = true;
            }

            // Jeśli kształt jest kształtem grupy
            else if (shape is IGroupShape)
            {
                // Wpisz rzut na kształt grupy i uzyskaj blokadę kształtu grupy
                IGroupShape Group = shape as IGroupShape;
                IGroupShapeLock groupShapeLock = Group.ShapeLock;

                // Zastosuj blokady kształtu
                groupShapeLock.GroupingLocked = true;
                groupShapeLock.PositionLocked = true;
                groupShapeLock.SelectLocked = true;
                groupShapeLock.SizeLocked = true;
            }

            // Jeśli kształt jest łącznikiem
            else if (shape is IConnector)
            {
                // Wpisz rzut na kształt złącza i uzyskaj blokadę kształtu złącza
                IConnector Conn = shape as IConnector;
                IConnectorLock ConnLock = Conn.ShapeLock;

                // Zastosuj blokady kształtu
                ConnLock.PositionMove = true;
                ConnLock.SelectLocked = true;
                ConnLock.SizeLocked = true;
            }

            // Jeśli kształt jest ramką obrazu
            else if (shape is IPictureFrame)
            {
                // Wpisz odlew, aby zobrazować kształt ramki i uzyskaj blokadę kształtu ramki obrazu
                IPictureFrame Pic = shape as IPictureFrame;
                IPictureFrameLock PicLock = Pic.ShapeLock;

                // Zastosuj blokady kształtu
                PicLock.PositionLocked = true;
                PicLock.SelectLocked = true;
                PicLock.SizeLocked = true;
            }
        }
    }

    // Zapisz prezentację
    presentation.Save("locked-ppt.pptx", SaveFormat.Pptx);
}

Odblokuj prezentacje PowerPoint w C#

Aby odblokować kształty i umożliwić ich edycję, musisz wyłączyć blokady. Pamiętaj, że jeśli zablokowałeś kształty za pomocą Aspose.Slides for .NET, będziesz musiał użyć tego samego API do odblokowania. Odblokowanie odbywa się poprzez wyłączenie blokad kształtu i ustawienie ich wartości na false.

Poniższy przykładowy kod pokazuje, jak odblokować kształty w pliku PPTX w języku C#.

// Załaduj prezentację
using (Presentation presentation = new Presentation("locked-ppt.ppt"))
{
    // Obiekt IShape do przechowywania tymczasowych kształtów
    IShape shape;

    // Przejrzyj wszystkie slajdy w prezentacji
   for (int slideCount = 0; slideCount < presentation.Slides.Count; slideCount++)
    {
        var slide = presentation.Slides[slideCount];

        // Przejrzyj wszystkie kształty na slajdach
       for (int count = 0; count < slide.Shapes.Count; count++)
        {
            shape = slide.Shapes[count];

            // Jeśli kształt jest automatycznym kształtem
            if (shape is IAutoShape)
            {
                // Wpisz rzut na automatyczny kształt i uzyskaj automatyczną blokadę kształtu
                IAutoShape Ashp = shape as IAutoShape;
                IAutoShapeLock AutoShapeLock = Ashp.ShapeLock;

                // Odblokuj kształt
                AutoShapeLock.PositionLocked = false;
                AutoShapeLock.SelectLocked = false;
                AutoShapeLock.SizeLocked = false;
            }

            // Jeśli kształt jest kształtem grupy
            else if (shape is IGroupShape)
            {
                // Wpisz rzut na kształt grupy i uzyskaj blokadę kształtu grupy
                IGroupShape Group = shape as IGroupShape;
                IGroupShapeLock groupShapeLock = Group.ShapeLock;

                // Odblokuj kształt
                groupShapeLock.GroupingLocked = false;
                groupShapeLock.PositionLocked = false;
                groupShapeLock.SelectLocked = false;
                groupShapeLock.SizeLocked = false;
            }

            // Jeśli kształt jest łącznikiem
            else if (shape is IConnector)
            {
                // Wpisz rzut na kształt złącza i uzyskaj blokadę kształtu złącza
                IConnector Conn = shape as IConnector;
                IConnectorLock ConnLock = Conn.ShapeLock;

                // Odblokuj kształt
                ConnLock.PositionMove = false;
                ConnLock.SelectLocked = false;
                ConnLock.SizeLocked = false;
            }

            // Jeśli kształt jest ramką obrazu
            else if (shape is IPictureFrame)
            {
                // Wpisz odlew, aby zobrazować kształt ramki i uzyskaj blokadę kształtu ramki obrazu
                IPictureFrame Pic = shape as IPictureFrame;
                IPictureFrameLock PicLock = Pic.ShapeLock;

                // Odblokuj kształt
                PicLock.PositionLocked = false;
                PicLock.SelectLocked = false;
                PicLock.SizeLocked = false;
            }
        }
    }

    // Zapisz prezentację
    presentation.Save("unlocked-ppt.ppt", SaveFormat.Ppt);
}

Uzyskaj bezpłatną licencję

Używaj Aspose.Slides for .NET bez ograniczeń ewaluacyjnych, uzyskując bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się blokować kształty w programie PowerPoint PPT/PPTX w języku C#. Ponadto widziałeś, jak usunąć ochronę prezentacji, programowo odblokowując ich kształty. Poza tym możesz dowiedzieć się więcej o Aspose.Slides for .NET, odwiedzając dokumentację. Możesz również zamieścić swoje zapytania na naszym forum.

Zobacz też