تطبيق الحماية على العرض التقديمي
استخدام شائع لـ Aspose.Slides هو إنشاء وتحديث وحفظ عروض Microsoft PowerPoint 2007 (PPTX) كجزء من سير عمل آلي. يحصل مستخدمو التطبيق الذي يستخدم Aspose.Slides بهذه الطريقة على الوصول إلى العروض الناتجة. حماية هذه العروض من التعديل هي مسألة شائعة. من المهم أن تحتفظ العروض المولدة تلقائيًا بتنسيقها ومحتواها الأصلي.
تشرح هذه المقالة كيفية إنشاء العروض والشرائح وكيف يمكن لـ Aspose.Slides لـ PHP عبر Java تطبيق الحماية على ، ثم إزالتها من عرض تقديمي. هذه الميزة فريدة من نوعها في Aspose.Slides وفي وقت كتابة هذا المقال، ليست متاحة في Microsoft PowerPoint. إنها تعطي المطورين وسيلة للتحكم في كيفية استخدام العروض التي تنشئها تطبيقاتهم.
تركيب الشريحة
تتكون شريحة PPTX من عدد من المكونات مثل الأشكال التلقائية، الجداول، عناصر OLE، الأشكال المجمعة، إطارات الصور، إطارات الفيديو، الموصلات والعديد من العناصر الأخرى المتاحة لبناء عرض تقديمي. في Aspose.Slides لـ PHP عبر Java، يتم تحويل كل عنصر على الشريحة إلى كائن Shape. بمعنى آخر، كل عنصر على الشريحة هو إما كائن Shape أو كائن مشتق من كائن Shape. هيكل PPTX معقد لذا على عكس PPT، حيث يمكن استخدام قفل عام لجميع أنواع الأشكال، هناك أنواع مختلفة من الأقفال لأنواع أشكال مختلفة. تصنيف BaseShapeLock هو تصنيف القفل العام لـ PPTX. الأنواع التالية من الأقفال مدعومة في Aspose.Slides لـ PHP عبر Java لـ PPTX.
- AutoShapeLock يقفل الأشكال التلقائية.
- ConnectorLock يقفل الأشكال الموصلات.
- GraphicalObjectLock يقفل الكائنات الرسومية.
- GroupshapeLock يقفل الأشكال المجمعة.
- PictureFrameLock يقفل إطارات الصور. أي إجراء يتم على جميع كائنات Shape في كائن العرض التقديمي يتم تطبيقه على العرض التقديمي بالكامل.
تطبيق وإزالة الحماية
تطبيق الحماية يضمن أنه لا يمكن تعديل العرض التقديمي. إنها تقنية مفيدة لحماية محتوى العرض التقديمي.
تطبيق الحماية على أشكال PPTX
توفر Aspose.Slides لـ PHP عبر Java تصنيف Shape للتعامل مع شكل على الشريحة.
كما تم ذكره سابقًا، يحتوي كل تصنيف شكل على تصنيف قفل شكل مرتبط للحماية. تركز هذه المقالة على أقفال NoSelect و NoMove و NoResize. تضمن هذه الأقفال أنه لا يمكن تحديد الأشكال (من خلال نقرات الماوس أو طرق التحديد الأخرى)، ولا يمكن نقلها أو تغيير حجمها.
تطبيقات الشفرة التي تتبع تطبق الحماية على جميع أنواع الأشكال في عرض تقديمي.
try { | |
//Instatiate Presentation class that represents a PPTX file | |
Presentation pTemplate = new Presentation("RectPicFrame.pptx"); | |
//ISlide object for accessing the slides in the presentation | |
ISlide slide = pTemplate.getSlides().get_Item(0); | |
//IShape object for holding temporary shapes | |
IShape shape; | |
//Traversing through all the slides in the presentation | |
for (int slideCount = 0; slideCount < pTemplate.getSlides().size(); slideCount++) | |
{ | |
slide = pTemplate.getSlides().get_Item(slideCount); | |
//Travesing through all the shapes in the slides | |
for (int count = 0; count < slide.getShapes().size(); count++) | |
{ | |
shape = slide.getShapes().get_Item(count); | |
//if shape is autoshape | |
if (shape instanceof IAutoShape) | |
{ | |
//Type casting to Auto shape and getting auto shape lock | |
IAutoShape Ashp = (IAutoShape)shape; | |
IAutoShapeLock AutoShapeLock = (IAutoShapeLock) Ashp.getShapeLock(); | |
//Applying shapes locks | |
AutoShapeLock.setPositionLocked(true); | |
AutoShapeLock.setSelectLocked(true); | |
AutoShapeLock.setSizeLocked(true); | |
} | |
//if shape is group shape | |
else if (shape instanceof IGroupShape) | |
{ | |
//Type casting to group shape and getting group shape lock | |
IGroupShape Group = (IGroupShape)shape; | |
IGroupShapeLock groupShapeLock = (IGroupShapeLock) Group.getShapeLock(); | |
//Applying shapes locks | |
groupShapeLock.setGroupingLocked(true); | |
groupShapeLock.setPositionLocked(true); | |
groupShapeLock.setSelectLocked(true); | |
groupShapeLock.setSizeLocked(true); | |
} | |
//if shape is a connector | |
else if (shape instanceof IConnector) | |
{ | |
//Type casting to connector shape and getting connector shape lock | |
IConnector Conn = (IConnector)shape; | |
IConnectorLock ConnLock = Conn.getShapeLock(); | |
//Applying shapes locks | |
ConnLock.setPositionMove(true); | |
ConnLock.setSelectLocked(true); | |
ConnLock.setSizeLocked(true); | |
} | |
//if shape is picture frame | |
else if (shape instanceof IPictureFrame) | |
{ | |
//Type casting to pitcture frame shape and getting picture frame shape lock | |
IPictureFrame Pic = (IPictureFrame)shape; | |
IPictureFrameLock PicLock = (IPictureFrameLock) Pic.getShapeLock(); | |
//Applying shapes locks | |
PicLock.setPositionLocked(true); | |
PicLock.setSelectLocked(true); | |
PicLock.setSizeLocked(true); | |
} | |
} | |
} | |
//Saving the presentation file | |
pTemplate.save("ProtectedSample.pptx", SaveFormat.Pptx); | |
} catch (Exception e) { | |
} |
إزالة الحماية
يمكن إزالة الحماية المطبقة باستخدام Aspose.Slides لـ .NET/Java فقط باستخدام Aspose.Slides لـ .NET/Java. لإلغاء قفل شكل، قم بتعيين قيمة القفل المطبق إلى false. توضح عينة الشفرة التي تتبع كيفية إلغاء قفل الأشكال في عرض تقديمي مقفل.
try { | |
//Instatiate Presentation class that represents a PPTX file | |
Presentation pTemplate = new Presentation("ProtectedSample.pptx"); | |
//ISlide object for accessing the slides in the presentation | |
ISlide slide = pTemplate.getSlides().get_Item(0); | |
//IShape object for holding temporary shapes | |
IShape shape; | |
//Traversing through all the slides in the presentation | |
for (int slideCount = 0; slideCount < pTemplate.getSlides().size(); slideCount++) | |
{ | |
slide = pTemplate.getSlides().get_Item(slideCount); | |
//Travesing through all the shapes in the slides | |
for (int count = 0; count < slide.getShapes().size(); count++) | |
{ | |
shape = slide.getShapes().get_Item(count); | |
//if shape is autoshape | |
if (shape instanceof IAutoShape) | |
{ | |
//Type casting to Auto shape and getting auto shape lock | |
IAutoShape Ashp = (IAutoShape)shape; | |
IAutoShapeLock AutoShapeLock = (IAutoShapeLock) Ashp.getShapeLock(); | |
//Applying shapes locks | |
AutoShapeLock.setPositionLocked(false); | |
AutoShapeLock.setSelectLocked(false); | |
AutoShapeLock.setSizeLocked(false); | |
} | |
//if shape is group shape | |
else if (shape instanceof IGroupShape) | |
{ | |
//Type casting to group shape and getting group shape lock | |
IGroupShape Group = (IGroupShape)shape; | |
IGroupShapeLock groupShapeLock = (IGroupShapeLock) Group.getShapeLock(); | |
//Applying shapes locks | |
groupShapeLock.setGroupingLocked(false); | |
groupShapeLock.setPositionLocked(false); | |
groupShapeLock.setSelectLocked(false); | |
groupShapeLock.setSizeLocked(false); | |
} | |
//if shape is a connector | |
else if (shape instanceof IConnector) | |
{ | |
//Type casting to connector shape and getting connector shape lock | |
IConnector Conn = (IConnector)shape; | |
IConnectorLock ConnLock = Conn.getShapeLock(); | |
//Applying shapes locks | |
ConnLock.setPositionMove(false); | |
ConnLock.setSelectLocked(false); | |
ConnLock.setSizeLocked(false); | |
} | |
//if shape is picture frame | |
else if (shape instanceof IPictureFrame) | |
{ | |
//Type casting to pitcture frame shape and getting picture frame shape lock | |
IPictureFrame Pic = (IPictureFrame)shape; | |
IPictureFrameLock PicLock = (IPictureFrameLock) Pic.getShapeLock(); | |
//Applying shapes locks | |
PicLock.setPositionLocked(false); | |
PicLock.setSelectLocked(false); | |
PicLock.setSizeLocked(false); | |
} | |
} | |
} | |
//Saving the presentation file | |
pTemplate.save("RemoveProtectionSample.pptx", SaveFormat.Pptx); | |
} catch (Exception e) { | |
} | |