دمج العروض التقديمية بفعالية في PHP

دمج العروض التقديمية

عند دمج عرض تقديمي مع آخر، فإنك تقوم فعليًا بدمج الشرائح في عرض تقديمي واحد للحصول على ملف واحد.

ما يمكن دمجه

مع Aspose.Slides، يمكنك دمج

  • العروض الكاملة. جميع الشرائح من العروض تنتهي في عرض واحد
  • الشرائح المحددة. الشرائح المختارة تنتهي في عرض واحد
  • العروض بصيغة واحدة (PPT إلى PPT، PPTX إلى PPTX، إلخ) وبصيغ مختلفة (PPT إلى PPTX، PPTX إلى ODP، إلخ) إلى بعضها البعض.

خيارات الدمج

يمكنك تطبيق خيارات تحدد ما إذا كان

  • كل شريحة في العرض الناتج تحتفظ بنمط فريد
  • نمط محدد يُستخدم لجميع الشرائح في العرض الناتج.

لدمج العروض، توفر Aspose.Slides طرق addClone (من فئة SlideCollection). هناك عدة تنفيذات لطرق addClone التي تحدد معلمات عملية دمج العروض. كل كائن Presentation يحتوي على مجموعة slide، لذلك يمكنك استدعاء طريقة addClone من العرض الذي تريد دمج الشرائح إليه.

طريقة addClone تُعيد كائن Slide، وهو نسخة من الشريحة المصدر. الشرائح في العرض الناتج هي ببساطة نسخة من الشرائح الأصلية. وبالتالي، يمكنك تعديل الشرائح الناتجة (مثل تطبيق الأنماط أو خيارات التنسيق أو التخطيطات) دون القلق من أن تتأثر العروض المصدر.

دمج العروض

توفر Aspose.Slides طريقة addClone(Slide) التي تتيح لك دمج الشرائح مع الحفاظ على تخطيطاتها وأنماطها (معلمات افتراضية).

يوضح هذا الكود PHP كيفية دمج العروض:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

دمج العروض مع ماستر شريحة

توفر Aspose.Slides طريقة addClone(Slide, MasterSlide, boolean) التي تتيح لك دمج الشرائح مع تطبيق قالب ماستر شريحة للعرض. بهذه الطريقة، إذا لزم الأمر، يمكنك تغيير نمط الشرائح في العرض الناتج.

يوضح هذا الكود العملية الموصوفة:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getMasters()->get_Item(0), true);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

إذا أردت أن تكون للشرائح في العرض الناتج تخطيط شريحة مختلف، استخدم طريقة addClone(Slide, LayoutSlide) بدلاً من ذلك عند الدمج.

دمج شرائح محددة من العروض

يُعد دمج شرائح محددة من عروض متعددة مفيدًا لإنشاء مجموعات شرائح مخصصة. يتيح لك Aspose.Slides for PHP via Java اختيار واستيراد الشرائح التي تحتاجها فقط. يحافظ API على التنسيق والتخطيط وتصميم الشرائح الأصلية.

يقوم الكود PHP التالي بإنشاء عرض تقديمي جديد، وإضافة شرائح عنوان من عرضين آخرين، وحفظ النتيجة في ملف:

function getTitleSlide(Presentation $presentation) {
    for ($i = 0; $i < java_values($presentation->getSlides()->size()); $i++) {
        $slide = $presentation->getSlides()->get_Item($i);
        if (java_values($slide->getLayoutSlide()->getLayoutType()) === SlideLayoutType::Title) {
            return $slide;
        }
    }
    return null;
}
$presentation = new Presentation();
$presentation1 = new Presentation($folderPath . "presentation1.pptx");
$presentation2 = new Presentation($folderPath . "presentation2.pptx");
try {
    $presentation->getSlides()->removeAt(0);
    
    $slide1 = getTitleSlide($presentation1);

    if ($slide1 != null)
        $presentation->getSlides()->addClone($slide1);

    $slide2 = getTitleSlide($presentation2);

    if ($slide2 != null)
        $presentation->getSlides()->addClone($slide2);

    $presentation->save($folderPath . "combined.pptx", SaveFormat::Pptx);
} finally {
    $presentation2->dispose();
    $presentation1->dispose();
    $presentation->dispose();
}

دمج العروض مع تخطيط شريحة

يوضح هذا الكود PHP كيفية دمج الشرائح من العروض مع تطبيق تخطيط الشريحة المفضل لديك للحصول على عرض نهائي واحد:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres2->getLayoutSlides()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

دمج العروض بأحجام شرائح مختلفة

لدمج عرضين بأحجام شرائح مختلفة، يجب تغيير حجم أحد العروض لجعل حجمه يطابق حجم العرض الآخر.

يوضح هذا المثال الكود العملية الموصوفة:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      $pres2->getSlideSize()->setSize($pres1->getSlideSize()->getSize()->getWidth(), $pres1->getSlideSize()->getSize()->getHeight(), SlideSizeScaleType::EnsureFit);
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide);
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

دمج شرائح إلى قسم في العرض

يوضح هذا الكود PHP كيفية دمج شريحة محددة إلى قسم في عرض تقديمي:

  $pres1 = new Presentation("pres1.pptx");
  try {
    $pres2 = new Presentation("pres2.pptx");
    try {
      foreach($pres2->getSlides() as $slide) {
        $pres1->getSlides()->addClone($slide, $pres1->getSections()->get_Item(0));
      }
    } finally {
      if (!java_is_null($pres2)) {
        $pres2->dispose();
      }
    }
    $pres1->save("combined.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres1)) {
      $pres1->dispose();
    }
  }

تُضاف الشريحة في نهاية القسم.

انظر أيضًا

توفر Aspose أداة صانع الكولاج المجانية على الإنترنت. باستخدام هذه الخدمة عبر الإنترنت، يمكنك دمج صور JPG إلى JPG أو PNG إلى PNG، وإنشاء شبكات صور، والمزيد.

اطلع على Aspose FREE Online Merger. يتيح لك دمج عروض PowerPoint بنفس الصيغة (مثل PPT إلى PPT، PPTX إلى PPTX) أو عبر صيغ مختلفة (مثل PPT إلى PPTX، PPTX إلى ODP).

Aspose FREE Online Merger

الأسئلة الشائعة

هل هناك أي قيود على عدد الشرائح عند دمج العروض؟

لا توجد قيود صارمة. يمكن لـ Aspose.Slides معالجة ملفات كبيرة، لكن الأداء يعتمد على حجم الملف وموارد النظام. بالنسبة للعروض الكبيرة جدًا، يُنصح باستخدام JVM 64 بت وتخصيص ذاكرة heap كافية.

هل يمكنني دمج عروض تحتوي على فيديو أو صوت مدمج؟

نعم، يحافظ Aspose.Slides على المحتوى المتعدد الوسائط المدمج في الشرائح، لكن قد يصبح العرض النهائي أكبر حجمًا بشكل ملحوظ.

هل سيتم الحفاظ على الخطوط عند دمج العروض؟

نعم. يتم الحفاظ على الخطوط المستخدمة في العروض المصدر في الملف الناتج، بشرط أن تكون مثبتة على النظام أو مضمنة.