فتح العرض التقديمي
بالإضافة إلى إنشاء عروض PowerPoint من الصفر، تتيح لك Aspose.Slides فتح العروض التقديمية الموجودة. بعد تحميل عرض تقديمي، يمكنك الحصول على معلومات حول العرض التقديمي، وتعديل العرض التقديمي (المحتوى في الشرائح)، وإضافة شرائح جديدة أو إزالة الشرائح الموجودة، إلخ.
فتح العرض التقديمي
لفتح عرض تقديمي موجود، تحتاج ببساطة إلى تهيئة فئة Presentation وتمرير مسار الملف (للعرض التقديمي الذي تريد فتحه) إلى المُنشئ الخاص بها.
يوضح لك هذا الرمز PHP كيفية فتح عرض تقديمي وأيضًا معرفة عدد الشرائح التي يحتوي عليها:
# تهيئة فئة Presentation وتمرير مسار الملف إلى مُنشئها
$pres = new Presentation("Presentation.pptx");
try {
# طباعة العدد الإجمالي للشرائح الموجودة في العرض التقديمي
echo($pres->getSlides()->size());
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
فتح عرض تقديمي محمي بكلمة مرور
عندما تحتاج إلى فتح عرض تقديمي محمي بكلمة مرور، يمكنك تمرير كلمة المرور عبر خاصية Password (من فئة LoadOptions) لفك تشفير العرض التقديمي وتحميل العرض التقديمي. يوضح هذا الرمز PHP العملية:
$loadOptions = new LoadOptions();
$loadOptions->setPassword("YOUR_PASSWORD");
$pres = new Presentation("pres.pptx", $loadOptions);
try {
# القيام ببعض الأعمال مع العرض التقديمي المفكوك التشفير
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
فتح عرض تقديمي كبير
تقدم Aspose.Slides خيارات (خاصية BlobManagementOptions على وجه الخصوص) تحت فئة LoadOptions للسماح لك بتحميل عروض تقديمية كبيرة.
يوضح هذا المثال Java عملية يتم فيها تحميل عرض تقديمي كبير (say 2GB in size):
$loadOptions = new LoadOptions();
$loadOptions->getBlobManagementOptions()->setPresentationLockingBehavior(PresentationLockingBehavior->KeepLocked);
$loadOptions->getBlobManagementOptions()->setTemporaryFilesAllowed(true);
$loadOptions->getBlobManagementOptions()->setMaxBlobsBytesInMemory(0);
$pres = new Presentation("veryLargePresentation.pptx", $loadOptions);
try {
# تم تحميل العرض التقديمي الكبير ويمكن استخدامه، ولكن استهلاك الذاكرة لا يزال منخفضًا.
# إجراء تغييرات على العرض التقديمي.
$pres->getSlides()->get_Item(0)->setName("عرض تقديمي كبير جداً");
# سيتم حفظ العرض التقديمي في ملف آخر. يبقى استهلاك الذاكرة منخفضًا أثناء العملية
$pres->save("veryLargePresentation-copy.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
معلومات
لتجاوز بعض القيود عند التفاعل مع دفق، قد تقوم Aspose.Slides بنسخ محتوى الدفق. سيؤدي تحميل عرض تقديمي كبير من خلال دفقه إلى نسخ محتويات العرض التقديمي والتسبب في بطء التحميل. لذلك، عندما تنوي تحميل عرض تقديمي كبير، نوصي بشدة باستخدام مسار ملف العرض التقديمي وليس دفقه.
عندما تريد إنشاء عرض تقديمي يحتوي على كائنات كبيرة (فيديو، صوت، صور كبيرة، إلخ)، يمكنك استخدام تسهيلات Blob لتقليل استهلاك الذاكرة.
تحميل العرض التقديمي
تقدم Aspose.Slides IResourceLoadingCallback مع طريقة واحدة للسماح لك بإدارة الموارد الخارجية. يوضح لك هذا الرمز PHP كيفية استخدام واجهة IResourceLoadingCallback
:
class ImageLoadingHandler {
function resourceLoading($args) {
if (java_values($args->getOriginalUri()->endsWith(".jpg"))) {
# يحمل صورة بديلة
$file = new Java("java.io.File", "aspose-logo.jpg");
$Array = new JavaClass("java.lang.reflect.Array");
$Byte = new JavaClass("java.lang.Byte");
$imageBytes = $Array->newInstance($Byte, $Array->getLength($file));
try {
$dis = new Java("java.io.DataInputStream", new Java("java.io.FileInputStream", $file));
$dis->readFully($imageBytes);
} finally {
if (!java_is_null($dis)) $dis->close();
}
$args->setData($imageBytes);
return ResourceLoadingAction::UserProvided;
} else if (java_values($args->getOriginalUri()->endsWith(".png"))) {
# تعيين عنوان URL البديل
$args->setUri("http://www.google.com/images/logos/ps_logo2.png");
return ResourceLoadingAction::Default;
}
# يتخطى جميع الصور الأخرى
return ResourceLoadingAction::Skip;
}
}
$opts = new LoadOptions();
$loadingHandler = java_closure(new ImageLoadingHandler(), null, java("com.aspose.slides.IResourceLoadingCallback"));
$opts->setResourceLoadingCallback($loadingHandler);
$pres = new Presentation("presentation.pptx", $opts);
تحميل العرض التقديمي بدون كائنات ثنائية مدمجة
يمكن أن يحتوي العرض التقديمي PowerPoint على الأنواع التالية من الكائنات الثنائية المدمجة:
- مشروع VBA (IPresentation.VbaProject);
- بيانات كائن OLE المدمجة (IOleEmbeddedDataInfo.EmbeddedFileData);
- بيانات كائن ActiveX الثنائية (IControl.ActiveXControlBinary);
باستخدام خاصية ILoadOptions.DeleteEmbeddedBinaryObjects، يمكنك تحميل العرض التقديمي بدون أي كائنات ثنائية مدمجة.
يمكن أن تكون هذه الخاصية مفيدة لإزالة المحتوى الثنائي الضار المحتمل.
يوضح الكود كيفية تحميل وحفظ عرض تقديمي بدون أي محتوى ضار:
$loadOptions = new LoadOptions();
$loadOptions->setDeleteEmbeddedBinaryObjects(true);
$pres = new Presentation("malware.ppt", $loadOptions);
try {
$pres->save("clean.ppt", SaveFormat::Ppt);
} finally {
if (!java_is_null(pres)) {
$pres->dispose();
}
}
فتح وحفظ العرض التقديمي
خطوات فتح وحفظ العرض التقديمي:
- إنشاء مثيل من فئة Presentation وتمرير الملف الذي تريد فتحه.
- حفظ العرض التقديمي.
# تهيئة كائن Presentation يمثل ملف PPT
$pres = new Presentation();
try {
# ...قيام ببعض الأعمال هنا...
# حفظ العرض التقديمي الخاص بك في ملف
$pres->save("demoPass.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}