إدارة انتقالات الشرائح في العروض التقديمية باستخدام PHP
نظرة عامة
لتسهيل الفهم، قمنا بعرض استخدام Aspose.Slides for PHP عبر Java لإدارة انتقالات الشرائح البسيطة. يمكن للمطورين ليس فقط تطبيق تأثيرات انتقال مختلفة على الشرائح، بل أيضًا تخصيص سلوك هذه التأثيرات.
إضافة انتقال الشريحة
لإنشاء تأثير انتقال شريحة بسيط، اتبع الخطوات أدناه:
- إنشاء مثيل من الفئة Presentation .
- تطبيق نوع انتقال الشريحة على الشريحة من أحد تأثيرات الانتقال التي تقدمها Aspose.Slides for PHP عبر Java من خلال تعداد TransitionType.
- كتابة ملف العرض التقديمي المعدل.
# إنشاء مثيل فئة Presentation لتحميل ملف العرض التقديمي المصدر
$presentation = new Presentation("AccessSlides.pptx");
try {
# تطبيق انتقال بنوع دائرة على الشريحة 1
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->setType(TransitionType::Circle);
# تطبيق انتقال بنوع مشط على الشريحة 2
$presentation->getSlides()->get_Item(1)->getSlideShowTransition()->setType(TransitionType::Comb);
# حفظ العرض التقديمي إلى القرص
$presentation->save("SampleTransition_out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
إضافة انتقال شريحة متقدم
في القسم السابق، قمنا فقط بتطبيق تأثير انتقال بسيط على الشريحة. الآن، لجعل هذا التأثير البسيط أفضل ومتحكمًا فيه، يرجى اتباع الخطوات أدناه:
- إنشاء مثيل من الفئة Presentation .
- تطبيق نوع انتقال الشريحة على الشريحة من أحد تأثيرات الانتقال التي تقدمها Aspose.Slides for PHP عبر Java.
- يمكنك أيضًا تعيين الانتقال إلى التقدم عند النقر، بعد فترة زمنية محددة أو كلاهما.
- إذا تم تمكين انتقال الشريحة للتقدم عند النقر، فإن الانتقال سيتقدم فقط عندما ينقر أحدهم الفأرة. علاوة على ذلك، إذا تم تعيين خاصية Advance After Time، فإن الانتقال سيتقدم تلقائيًا بعد مرور الوقت المحدد للتقدم.
- كتابة العرض التقديمي المعدل كملف عرض تقديمي.
# إنشاء كائن من فئة Presentation التي تمثل ملف عرض تقديمي
$pres = new Presentation("BetterSlideTransitions.pptx");
try {
# تطبيق انتقال بنوع دائرة على الشريحة 1
$pres->getSlides()->get_Item(0)->getSlideShowTransition()->setType(TransitionType::Circle);
# تحديد مدة الانتقال بـ 3 ثوانٍ
$pres->getSlides()->get_Item(0)->getSlideShowTransition()->setAdvanceOnClick(true);
$pres->getSlides()->get_Item(0)->getSlideShowTransition()->setAdvanceAfterTime(3000);
# تطبيق انتقال بنوع مشط على الشريحة 2
$pres->getSlides()->get_Item(1)->getSlideShowTransition()->setType(TransitionType::Comb);
# تحديد مدة الانتقال بـ 5 ثوانٍ
$pres->getSlides()->get_Item(1)->getSlideShowTransition()->setAdvanceOnClick(true);
$pres->getSlides()->get_Item(1)->getSlideShowTransition()->setAdvanceAfterTime(5000);
# تطبيق انتقال بنوع تكبير على الشريحة 3
$pres->getSlides()->get_Item(2)->getSlideShowTransition()->setType(TransitionType::Zoom);
# تحديد مدة الانتقال بـ 7 ثوانٍ
$pres->getSlides()->get_Item(2)->getSlideShowTransition()->setAdvanceOnClick(true);
$pres->getSlides()->get_Item(2)->getSlideShowTransition()->setAdvanceAfterTime(7000);
# حفظ العرض التقديمي إلى القرص
$pres->save("SampleTransition_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
انتقال Morph
يسمح لك انتقال Morph بتحريك حركة سلسة من شريحة إلى أخرى. يصف هذا المقال المفهوم وكيفية استخدام انتقال Morph. لاستخدام انتقال Morph بشكل فعّال، ستحتاج إلى شريحتين تتشاركان على الأقل كائنًا واحدًا. أسهل طريقة هي تكرار الشريحة ثم نقل الكائن في الشريحة الثانية إلى مكان مختلف.
يظهر المقتطف البرمجي التالي كيفية إضافة نسخة من الشريحة مع بعض النص إلى العرض التقديمي وتعيين انتقال من نوع morph type إلى الشريحة الثانية.
$presentation = new Presentation();
try {
$autoshape = $presentation->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 100, 100, 400, 100);
$autoshape->getTextFrame()->setText("Morph Transition in PowerPoint Presentations");
$presentation->getSlides()->addClone($presentation->getSlides()->get_Item(0));
$shape = $presentation->getSlides()->get_Item(1)->getShapes()->get_Item(0);
$shape->setX($shape->getX() + 100);
$shape->setY($shape->getY() + 50);
$shape->setWidth($shape->getWidth() - 200);
$shape->setHeight($shape->getHeight() - 10);
$presentation->getSlides()->get_Item(1)->getSlideShowTransition()->setType(TransitionType::Morph);
$presentation->save("presentation-out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
أنواع انتقال Morph
تم إضافة تعداد جديد TransitionMorphType. يمثل أنواعًا مختلفة من انتقال شريحة Morph.
يحتوي تعداد TransitionMorphType على ثلاثة أعضاء:
- ByObject: سيتم تنفيذ انتقال Morph مع اعتبار الأشكال ككائنات غير قابلة للتقسيم.
- ByWord: سيتم تنفيذ انتقال Morph بنقل النص كلمةً كلمةً حيثما أمكن.
- ByChar: سيتم تنفيذ انتقال Morph بنقل النص حرفًا بحرف حيثما أمكن.
يظهر المقتطف البرمجي التالي كيفية تعيين انتقال Morph إلى الشريحة وتغيير نوع Morph:
$presentation = new Presentation("presentation.pptx");
try {
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->setType(TransitionType::Morph);
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->getValue()->setMorphType(TransitionMorphType::ByWord);
$presentation->save("presentation-out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
تعيين تأثيرات الانتقال
تدعم Aspose.Slides for PHP عبر Java تعيين تأثيرات الانتقال مثل من الأسود، من اليسار، من اليمين، إلخ. لتعيين تأثير الانتقال، يرجى اتباع الخطوات أدناه:
- إنشاء مثيل من الفئة Presentation .
- الحصول على مرجع الشريحة.
- تعيين تأثير الانتقال.
- كتابة العرض التقديمي كملف PPTX .
في المثال المعطى أدناه، قمنا بتعيين تأثيرات الانتقال.
# إنشاء مثيل من فئة Presentation
$presentation = new Presentation("AccessSlides.pptx");
try {
# تعيين التأثير
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->setType(TransitionType::Cut);
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->getValue()->setFromBlack(true);
# حفظ العرض التقديمي إلى القرص
$presentation->save("SetTransitionEffects_out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
FAQ
هل يمكنني التحكم في سرعة تشغيل انتقال الشريحة؟
نعم. قم بتعيين speed للانتقال باستخدام إعداد TransitionSpeed (مثلاً بطيء/متوسط/سريع).
هل يمكنني إرفاق صوت بانتقال وجعله يتكرر؟
نعم. يمكنك تضمين صوت للانتقال والتحكم في سلوكه عبر إعدادات مثل وضع الصوت وإعادة التكرار (مثل setSound, setSoundMode, setSoundLoop, بالإضافة إلى بيانات وصفية مثل setSoundIsBuiltIn وsetSoundName).
ما هي أسرع طريقة لتطبيق نفس الانتقال على كل شريحة؟
قم بتكوين نوع الانتقال المطلوب في إعدادات انتقال كل شريحة؛ يتم تخزين الانتقالات لكل شريحة، لذا فإن تطبيق نفس النوع على جميع الشرائح يوفر نتيجة متسقة.
كيف يمكنني التحقق من الانتقال المحدد حاليًا على شريحة؟
افحص إعدادات الانتقال للشريحة واقرأ نوع الانتقال; القيمة التي تُظهرها تخبرك بالضبط أي تأثير تم تطبيقه.