استنساخ شرائح العرض التقديمي في PHP

استنساخ الشرائح في عرض تقديمي

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

  • استنساخ في النهاية داخل عرض تقديمي.
  • استنساخ في موضع آخر داخل عرض تقديمي.
  • استنساخ في النهاية في عرض تقديمي آخر.
  • استنساخ في موضع آخر في عرض تقديمي آخر.
  • استنساخ في موضع محدد في عرض تقديمي آخر.

في Aspose.Slides for PHP via Java، (مجموعة من Slide objects) التي يُظهرها كائن Presentation توفر الطريقتين addClone وinsertClone لتنفيذ الأنواع المذكورة أعلاه من استنساخ الشرائح

استنساخ شريحة في نهاية عرض تقديمي

إذا أردت استنساخ شريحة ثم استخدامها داخل نفس ملف العرض التقديمي في نهاية الشرائح الموجودة، استخدم طريقة addClone وفقًا للخطوات المذكورة أدناه:

  1. أنشئ مثيلًا من الفئة Presentation.
  2. احصل على كائن SlideCollection بالإشارة إلى مجموعة الشرائح التي يُظهرها كائن Presentation.
  3. استدعِ طريقة addClone التي يُظهرها كائن SlideCollection ومرّر الشريحة التي تريد استنساخها كمعامل إلى طريقة addClone.
  4. احفظ ملف العرض التقديمي المعدل.

في المثال أدناه، قمنا باستنساخ شريحة (تقع في الموضع الأول – الفهرس صفر – من العرض التقديمي) إلى نهاية العرض التقديمي.

  # إنشاء كائن فئة Presentation الذي يمثل ملف عرض تقديمي
  $pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
  try {
    # استنساخ الشريحة المطلوبة إلى نهاية مجموعة الشرائح في نفس العرض التقديمي
    $slds = $pres->getSlides();
    $slds->addClone($pres->getSlides()->get_Item(0));
    # حفظ العرض التقديمي المعدل إلى القرص
    $pres->save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

استنساخ شريحة إلى موضع آخر داخل عرض تقديمي

إذا أردت استنساخ شريحة ثم استخدامها داخل نفس ملف العرض التقديمي لكن في موضع مختلف، استخدم طريقة insertClone:

  1. أنشئ مثيلًا من الفئة Presentation.
  2. احصل على كائن SlideCollection بالإشارة إلى مجموعة Slides التي يُظهرها كائن Presentation.
  3. استدعِ طريقة insertClone التي يُظهرها كائن SlideCollection ومرّر الشريحة التي تريد استنساخها مع الفهرس للموضع الجديد كمعامل إلى طريقة insertClone.
  4. احفظ العرض التقديمي المعدل كملف PPTX.

في المثال أدناه، قمنا باستنساخ شريحة (تقع في الفهرس صفر – الموضع 1 – من العرض التقديمي) إلى الفهرس 1 – الموضع 2 – من العرض التقديمي.

  # إنشاء كائن فئة Presentation الذي يمثل ملف عرض تقديمي
  $pres = new Presentation("CloneWithInSamePresentation.pptx");
  try {
    # استنساخ الشريحة المطلوبة إلى نهاية مجموعة الشرائح في نفس العرض التقديمي
    $slds = $pres->getSlides();
    # استنساخ الشريحة المطلوبة إلى الفهرس المحدد في نفس العرض التقديمي
    $slds->insertClone(2, $pres->getSlides()->get_Item(1));
    # حفظ العرض التقديمي المعدل إلى القرص
    $pres->save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }

استنساخ شريحة في نهاية عرض تقديمي آخر

إذا كنت بحاجة إلى استنساخ شريحة من عرض تقديمي واستخدامها في عرض تقديمي آخر، في نهاية الشرائح الموجودة:

  1. أنشئ مثيلًا من الفئة Presentation الذي يحتوي على العرض التقديمي الذي ستُستنسخ منه الشريحة.
  2. أنشئ مثيلًا من الفئة Presentation الذي يحتوي على العرض التقديمي الهدف الذي ستُضاف إليه الشريحة.
  3. احصل على كائن SlideCollection بالإشارة إلى مجموعة Slides التي يُظهرها كائن Presentation للعرض التقديمي الهدف.
  4. استدعِ طريقة addClone التي يُظهرها كائن SlideCollection ومرّر الشريحة من العرض التقديمي المصدر كمعامل إلى طريقة addClone.
  5. احفظ ملف العرض التقديمي الهدف المعدل.

في المثال أدناه، قمنا باستنساخ شريحة (من الفهرس الأول للعرض التقديمي المصدر) إلى نهاية العرض التقديمي الهدف.

  # إنشاء كائن فئة Presentation لتحميل ملف العرض التقديمي المصدر
  $srcPres = new Presentation("CloneAtEndOfAnother.pptx");
  try {
    # إنشاء كائن فئة Presentation للـ PPTX الهدف (حيث ستُستنسخ الشريحة)
    $destPres = new Presentation();
    try {
      # استنساخ الشريحة المطلوبة من العرض التقديمي المصدر إلى نهاية مجموعة الشرائح في العرض التقديمي الهدف
      $slds = $destPres->getSlides();
      $slds->addClone($srcPres->getSlides()->get_Item(0));
      # حفظ العرض التقديمي الهدف إلى القرص
      $destPres->save("Aspose2_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

استنساخ شريحة إلى موضع آخر في عرض تقديمي آخر

إذا كنت بحاجة إلى استنساخ شريحة من عرض تقديمي واستخدامها في عرض تقديمي آخر، في موضع محدد:

  1. أنشئ مثيلًا من الفئة Presentation الذي يحتوي على العرض التقديمي المصدر الذي ستُستنسخ منه الشريحة.
  2. أنشئ مثيلًا من الفئة Presentation الذي يحتوي على العرض التقديمي الذي ستُضاف إليه الشريحة.
  3. احصل على الفئة SlideCollection بالإشارة إلى مجموعة Slides التي يُظهرها كائن Presentation للعرض التقديمي الهدف.
  4. استدعِ طريقة insertClone التي يُظهرها كائن SlideCollection ومرّر الشريحة من العرض التقديمي المصدر مع الموضع المطلوب كمعامل إلى طريقة insertClone.
  5. احفظ ملف العرض التقديمي الهدف المعدل.

في المثال أدناه، قمنا باستنساخ شريحة (من الفهرس صفر للعرض التقديمي المصدر) إلى الفهرس 1 (الموضع 2) من العرض التقديمي الهدف.

  # إنشاء كائن فئة Presentation لتحميل ملف العرض التقديمي المصدر
  $srcPres = new Presentation("CloneAtEndOfAnother.pptx");
  try {
    # إنشاء كائن فئة Presentation للـ PPTX الهدف (حيث ستُستنسخ الشريحة)
    $destPres = new Presentation();
    try {
      # استنساخ الشريحة المطلوبة من العرض التقديمي المصدر إلى نهاية مجموعة الشرائح في العرض التقديمي الهدف
      $slds = $destPres->getSlides();
      $slds->insertClone(2, $srcPres->getSlides()->get_Item(0));
      # حفظ العرض التقديمي الهدف إلى القرص
      $destPres->save("Aspose2_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

استنساخ شريحة في موضع محدد في عرض تقديمي آخر

إذا كنت بحاجة إلى استنساخ شريحة مع شريحة رئيسية من عرض تقديمي واستخدامها في عرض تقديمي آخر، يجب أولاً استنساخ الشريحة الرئيسية المطلوبة من العرض المصدر إلى العرض الهدف. ثم تحتاج إلى استخدام تلك الشريحة الرئيسية لاستنساخ الشريحة مع الشريحة الرئيسية. الطريقة addClone(Slide, MasterSlide, boolean) تتوقع شريحة رئيسية من العرض الهدف بدلاً من العرض المصدر. لاستنساخ الشريحة مع الرئيسية، يرجى اتباع الخطوات التالية:

  1. أنشئ مثيلًا من الفئة Presentation الذي يحتوي على العرض التقديمي المصدر الذي ستُستنسخ منه الشريحة.
  2. أنشئ مثيلًا من الفئة Presentation الذي يحتوي على العرض التقديمي الهدف الذي ستُستنسخ إليه الشريحة.
  3. وصول إلى الشريحة التي ستُستنسخ مع الشريحة الرئيسية.
  4. أنشئ كائنًا من الفئة MasterSlideCollection بالإشارة إلى مجموعة Masters التي يُظهرها كائن Presentation للعرض الهدف.
  5. استدعِ طريقة addClone التي يُظهرها كائن MasterSlideCollection ومرّر الشريحة الرئيسية من العرض المصدر لتستنسخها كمعامل إلى طريقة addClone.
  6. أنشئ كائنًا من الفئة SlideCollection بتعيين الإشارة إلى مجموعة Slides التي يُظهرها كائن Presentation للعرض الهدف.
  7. استدعِ طريقة addClone التي يُظهرها كائن SlideCollection ومرّر الشريحة من العرض المصدر لتستنسخها والشريحة الرئيسية كمعامل إلى طريقة addClone.
  8. احفظ ملف العرض التقديمي الهدف المعدل.

في المثال أدناه، قمنا باستنساخ شريحة مع شريحة رئيسية (تقع في الفهرس صفر للعرض المصدر) إلى نهاية العرض الهدف باستخدام شريحة رئيسية من الشريحة المصدر.

  # إنشاء كائن فئة Presentation لتحميل ملف العرض التقديمي المصدر
  $srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
  try {
    # إنشاء كائن فئة Presentation للعرض التقديمي الهدف (حيث ستُستنسخ الشريحة)
    $destPres = new Presentation();
    try {
      # إنشاء كائن ISlide من مجموعة الشرائح في العرض التقديمي المصدر مع
      # شريحة رئيسية
      $SourceSlide = $srcPres->getSlides()->get_Item(0);
      $SourceMaster = $SourceSlide->getLayoutSlide()->getMasterSlide();
      # استنساخ شريحة الماستر المطلوبة من العرض التقديمي المصدر إلى مجموعة الماسترز في الـ
      # العرض التقديمي الهدف
      $masters = $destPres->getMasters();
      $DestMaster = $SourceSlide->getLayoutSlide()->getMasterSlide();
      # استنساخ شريحة الماستر المطلوبة من العرض التقديمي المصدر إلى مجموعة الماسترز في الـ
      # العرض التقديمي الهدف
      $iSlide = $masters->addClone($SourceMaster);
      # استنساخ الشريحة المطلوبة من العرض التقديمي المصدر مع الماستر المطلوب إلى نهاية الـ
      # مجموعة الشرائح في العرض التقديمي الهدف
      $slds = $destPres->getSlides();
      $slds->addClone($SourceSlide, $iSlide, true);
      # حفظ العرض التقديمي الهدف إلى القرص
      $destPres->save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat::Pptx);
    } finally {
      $destPres->dispose();
    }
  } finally {
    $srcPres->dispose();
  }

استنساخ شريحة في نهاية قسم محدد

إذا كنت تريد استنساخ شريحة ثم استخدامها داخل نفس ملف العرض التقديمي لكن في قسم مختلف، استخدم طريقة addClone التي يُظهرها كائن SlideCollection. Aspose.Slides for PHP via Java يتيح استنساخ شريحة من القسم الأول ثم إدراج تلك الشريحة المستنسخة إلى القسم الثاني من نفس العرض التقديمي.

المقتطف البرمجي التالي يوضح كيفية استنساخ شريحة وإدراج الشريحة المستنسخة في قسم محدد.

  $presentation = new Presentation();
  try {
    $presentation->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 200, 50, 300, 100);
    $presentation->getSections()->addSection("Section 1", $presentation->getSlides()->get_Item(0));
    $section2 = $presentation->getSections()->appendEmptySection("Section 2");
    $presentation->getSlides()->addClone($presentation->getSlides()->get_Item(0), $section2);
    # حفظ العرض التقديمي الهدف إلى القرص
    $presentation->save($dataDir . "CloneSlideIntoSpecifiedSection.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($presentation)) {
      $presentation->dispose();
    }
  }

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

هل يتم استنساخ ملاحظات المتحدث وتعليقات المراجعين؟

نعم. يتم تضمين صفحة الملاحظات وتعليقات المراجعة في النسخة المستنسخة. إذا لم ترغب في ذلك، قم بـإزالتها بعد الإدراج.

كيف يتم التعامل مع المخططات ومصادر بياناتها؟

يتم نسخ كائن المخطط وتنسيقه والبيانات المضمنة. إذا كان المخطط مرتبطًا بمصدر خارجي (مثل دفتر عمل مضمن كـ OLE)، يتم الحفاظ على هذا الارتباط كـكائن OLE. بعد النقل بين الملفات، تحقق من توفر البيانات وسلوك التحديث.

هل يمكنني التحكم في موضع الإدراج والأقسام للنسخة المستنسخة؟

نعم. يمكنك إدراج النسخة في فهرس شريحة محدد ووضعها في قسم مختار. إذا لم يكن القسم الهدف موجودًا، أنشئه أولاً ثم انقل الشريحة إليه.