Uzamykání prezentace
Uzamykání prezentace
Běžné využití Aspose.Slides je vytváření, aktualizace a ukládání prezentací Microsoft PowerPoint 2007 (PPTX) jako součást automatizovaného pracovního postupu. Uživatelé aplikace, která Aspose.Slides používá tímto způsobem, získají přístup k výstupním prezentacím. Ochrana před úpravami je běžnou starostí. Je důležité, aby automaticky generované prezentace zachovávaly původní formátování a obsah.
Tento článek vysvětluje, jak jsou prezentace a snímky vytvořeny a jak může Aspose.Slides pro .NET použít ochranu na prezentaci a následně ji z ní odstranit. Tato funkce je unikátní pro Aspose.Slides a v době psaní není dostupná v Microsoft PowerPoint. Poskytuje vývojářům způsob, jak kontrolovat, jak jsou prezentace vytvářené jejich aplikacemi používány.
Složení snímku
Snímek PPTX se skládá z řady komponent, jako jsou automatické tvary, tabulky, OLE objekty, seskupené tvary, rámečky obrázků, rámečky videí, konektory a další různé prvky dostupné pro tvorbu prezentace.
V Aspose.Slides pro .NET je každý prvek na snímku převeden na objekt Shape. Jinými slovy, každý prvek na snímku je buď objekt Shape, nebo objekt odvozený od Shape.
Struktura PPTX je složitá, takže na rozdíl od PPT, kde lze použít obecný zámek pro všechny typy tvarů, existují různé typy zámků pro různé typy tvarů. Třída BaseShapeLock je obecná třída pro zamykání PPTX. Následující typy zámků jsou v Aspose.Slides pro .NET pro PPTX podporovány.
- AutoShapeLock zamyká automatické tvary.
- ConnectorLock zamyká konektory.
- GraphicalObjectLock zamyká grafické objekty.
- GroupshapeLock zamyká seskupené tvary.
- PictureFrameLock zamyká rámečky obrázků.
Jakákoli akce provedená na všech objektech Shape v objektu Presentation se použije na celou prezentaci.
Použití a odebrání ochrany
Aplikace ochrany zajišťuje, že prezentaci nelze upravovat. Jedná se o užitečnou techniku pro ochranu obsahu prezentace.
Použití ochrany na tvary PPTX
Aspose.Slides pro .NET poskytuje třídu Shape pro práci s tvarem na snímku.
Jak bylo zmíněno dříve, každá třída tvaru má přiřazenou třídu zámku tvaru pro ochranu. Tento článek se zaměřuje na zámky NoSelect, NoMove a NoResize. Tyto zámky zajišťují, že tvary nelze vybrat (kliknutím myši nebo jinými způsoby výběru) a nelze je přesouvat ani měnit jejich velikost.
Následující ukázky kódu aplikují ochranu na všechny typy tvarů v prezentaci.
//Vytvoření instance třídy Presentation, která představuje soubor PPTX
PresentationEx pTemplate = new PresentationEx("Applying Protection.pptx");//Vytvoření instance třídy Presentation, která představuje soubor PPTX
//Objekt ISlide pro přístup k snímkům v prezentaci
SlideEx slide = pTemplate.Slides[0];
//Objekt IShape pro ukládání dočasných tvarů
ShapeEx shape;
//Procházení všech snímků v prezentaci
for (int slideCount = 0; slideCount < pTemplate.Slides.Count; slideCount++)
{
slide = pTemplate.Slides[slideCount];
//Procházení všech tvarů ve snímcích
for (int count = 0; count < slide.Shapes.Count; count++)
{
shape = slide.Shapes[count];
//pokud je tvar autoshape
if (shape is AutoShapeEx)
{
//Přetypování na AutoShape a získání zámku autoshape
AutoShapeEx Ashp = shape as AutoShapeEx;
AutoShapeLockEx AutoShapeLock = Ashp.ShapeLock;
//Aplikování zámků tvarů
AutoShapeLock.PositionLocked = true;
AutoShapeLock.SelectLocked = true;
AutoShapeLock.SizeLocked = true;
}
//pokud je tvar skupinový tvar
else if (shape is GroupShapeEx)
{
//Přetypování na skupinový tvar a získání zámku skupinového tvaru
GroupShapeEx Group = shape as GroupShapeEx;
GroupShapeLockEx groupShapeLock = Group.ShapeLock;
//Aplikování zámků tvarů
groupShapeLock.GroupingLocked = true;
groupShapeLock.PositionLocked = true;
groupShapeLock.SelectLocked = true;
groupShapeLock.SizeLocked = true;
}
//pokud je tvar konektor
else if (shape is ConnectorEx)
{
//Přetypování na tvar konektoru a získání zámku konektoru
ConnectorEx Conn = shape as ConnectorEx;
ConnectorLockEx ConnLock = Conn.ShapeLock;
//Aplikování zámků tvarů
ConnLock.PositionMove = true;
ConnLock.SelectLocked = true;
ConnLock.SizeLocked = true;
}
//pokud je tvar rámeček obrázku
else if (shape is PictureFrameEx)
{
//Přetypování na tvar rámečku obrázku a získání zámku rámečku obrázku
PictureFrameEx Pic = shape as PictureFrameEx;
PictureFrameLockEx PicLock = Pic.ShapeLock;
//Aplikování zámků tvarů
PicLock.PositionLocked = true;
PicLock.SelectLocked = true;
PicLock.SizeLocked = true;
}
}
}
//Ukládání souboru prezentace
pTemplate.Save("ProtectedSample.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
Odebrání ochrany
Ochrana aplikovaná pomocí Aspose.Slides pro .NET může být odebrána pouze pomocí Aspose.Slides pro .NET. Pro odemčení tvaru nastavte hodnotu aplikovaného zámku na false. Následující ukázka kódu ukazuje, jak odemknout tvary v uzamčené prezentaci.
//Otevřete požadovanou prezentaci
PresentationEx pTemplate = new PresentationEx("ProtectedSample.pptx");
//Objekt ISlide pro přístup k snímkům v prezentaci
SlideEx slide = pTemplate.Slides[0];
//Objekt IShape pro uchování dočasných tvarů
ShapeEx shape;
//Procházení všech snímků v prezentaci
for (int slideCount = 0; slideCount < pTemplate.Slides.Count; slideCount++)
{
slide = pTemplate.Slides[slideCount];
//Procházení všech tvarů ve snímcích
for (int count = 0; count < slide.Shapes.Count; count++)
{
shape = slide.Shapes[count];
//pokud je tvar autoshape
if (shape is AutoShapeEx)
{
//Přetypování na Auto shape a získání zámku autoshape
AutoShapeEx Ashp = shape as AutoShapeEx;
AutoShapeLockEx AutoShapeLock = Ashp.ShapeLock;
//Aplikování zámků tvarů
AutoShapeLock.PositionLocked = false;
AutoShapeLock.SelectLocked = false;
AutoShapeLock.SizeLocked = false;
}
//pokud je tvar group shape
else if (shape is GroupShapeEx)
{
//Přetypování na group shape a získání zámku group shape
GroupShapeEx Group = shape as GroupShapeEx;
GroupShapeLockEx groupShapeLock = Group.ShapeLock;
//Aplikování zámků tvarů
groupShapeLock.GroupingLocked = false;
groupShapeLock.PositionLocked = false;
groupShapeLock.SelectLocked = false;
groupShapeLock.SizeLocked = false;
}
//pokud je tvar Connector shape
else if (shape is ConnectorEx)
{
//Přetypování na connector shape a získání zámku connector shape
ConnectorEx Conn = shape as ConnectorEx;
ConnectorLockEx ConnLock = Conn.ShapeLock;
//Aplikování zámků tvarů
ConnLock.PositionMove = false;
ConnLock.SelectLocked = false;
ConnLock.SizeLocked = false;
}
//pokud je tvar picture frame
else if (shape is PictureFrameEx)
{
//Přetypování na picture frame shape a získání zámku picture frame shape
PictureFrameEx Pic = shape as PictureFrameEx;
PictureFrameLockEx PicLock = Pic.ShapeLock;
//Aplikování zámků tvarů
PicLock.PositionLocked = false;
PicLock.SelectLocked = false;
PicLock.SizeLocked = false;
}
}
}
//Ukládání souboru prezentace
pTemplate.Save("RemoveProtectionSample.pptx", Aspose.Slides.Export.SaveFormat.Pptx);