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

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

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

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

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

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

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

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

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

// إنشاء كائن من فئة Presentation التي تمثل ملف عرض تقديمي
Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx");
try {
    // استنساخ الشريحة المطلوبة إلى نهاية مجموعة الشرائح في نفس العرض التقديمي
    ISlideCollection 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. قم بإنشاء كائن من الفئة عن طريق الإشارة إلى مجموعة Slides التي يُظهرها كائن Presentation.
  3. استدعِ طريقة insertClone التي يُظهرها كائن ISlideCollection ومرّر الشريحة التي تريد استنساخها مع الفهرس للموقع الجديد كمعامل إلى طريقة insertClone.
  4. اكتب العرض التقديمي المعدل كملف PPTX.

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

// إنشاء كائن من فئة Presentation التي تمثل ملف عرض تقديمي
Presentation pres = new Presentation("CloneWithInSamePresentation.pptx");
try {
    // استنساخ الشريحة المطلوبة إلى نهاية مجموعة الشرائح في نفس العرض التقديمي
    ISlideCollection 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. قم بإنشاء كائن من الفئة ISlideCollection عن طريق الإشارة إلى مجموعة Slides التي يُظهرها كائن Presentation للعرض التقديمي الوجهة.
  4. استدعِ طريقة addClone التي يُظهرها كائن ISlideCollection ومرّر الشريحة من عرض التقديمي المصدر كمعامل إلى طريقة addClone.
  5. اكتب ملف عرض التقديمي الوجهة المعدل.

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

// إنشاء كائن من فئة Presentation لتحميل ملف العرض التقديمي المصدر
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
    // إنشاء كائن من فئة Presentation لملف PPTX الوجهة (حيث سيتم استنساخ الشريحة)
    Presentation destPres = new Presentation();
    try {
        // استنساخ الشريحة المطلوبة من العرض التقديمي المصدر إلى نهاية مجموعة الشرائح في العرض التقديمي الوجهة
        ISlideCollection 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. قم بإنشاء كائن من الفئة ISlideCollection عن طريق الإشارة إلى مجموعة Slides التي يُظهرها كائن Presentation للعرض التقديمي الوجهة.
  4. استدعِ طريقة insertClone التي يُظهرها كائن ISlideCollection ومرّر الشريحة من العرض التقديمي المصدر مع الموضع المطلوب كمعامل إلى طريقة insertClone.
  5. اكتب ملف عرض التقديمي الوجهة المعدل.

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

// إنشاء كائن من فئة Presentation لتحميل ملف العرض التقديمي المصدر
Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx");
try {
    // إنشاء كائن من فئة Presentation لملف PPTX الوجهة (حيث ستتم استنساخ الشريحة)
    Presentation destPres = new Presentation();
    try {
        // استنساخ الشريحة المطلوبة من العرض التقديمي المصدر إلى نهاية مجموعة الشرائح في العرض التقديمي الوجهة
        ISlideCollection slds = destPres.getSlides();

        slds.insertClone(2, srcPres.getSlides().get_Item(0));

        // كتابة العرض التقديمي الوجهة إلى القرص
        destPres.save("Aspose2_out.pptx", SaveFormat.Pptx);
    } finally {
        destPres.dispose();
    }
} finally {
    srcPres.dispose();
}

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

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

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

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

// إنشاء كائن من فئة Presentation لتحميل ملف العرض التقديمي المصدر
Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx");
try {
    // إنشاء كائن من فئة Presentation للعرض التقديمي الوجهة (حيث سيتم استنساخ الشريحة)
    Presentation destPres = new Presentation();
    try {
        // إنشاء ISlide من مجموعة الشرائح في العرض التقديمي المصدر مع
        // الشريحة الرئيسية
        ISlide SourceSlide = srcPres.getSlides().get_Item(0);
        IMasterSlide SourceMaster = SourceSlide.getLayoutSlide().getMasterSlide();

        // استنساخ الشريحة الرئيسية المطلوبة من العرض التقديمي المصدر إلى مجموعة الشرائح الرئيسية في الـ
        // عرض تقديمي الوجهة
        IMasterSlideCollection masters = destPres.getMasters();
        IMasterSlide DestMaster = SourceSlide.getLayoutSlide().getMasterSlide();

        // استنساخ الشريحة الرئيسية المطلوبة من العرض التقديمي المصدر إلى مجموعة الشرائح الرئيسية في الـ
        // عرض تقديمي الوجهة
        IMasterSlide iSlide = masters.addClone(SourceMaster);

        // استنساخ الشريحة المطلوبة من العرض التقديمي المصدر مع الشريحة الرئيسية المطلوبة إلى نهاية الـ
        // مجموعة الشرائح في عرض تقديمي الوجهة
        ISlideCollection slds = destPres.getSlides();
        slds.addClone(SourceSlide, iSlide, true);

        // حفظ عرض تقديمي الوجهة إلى القرص
        destPres.save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
    } finally {
        destPres.dispose();
    }
} finally {
    srcPres.dispose();
}

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

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

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

IPresentation 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));

    ISection section2 = presentation.getSections().appendEmptySection("Section 2");
    presentation.getSlides().addClone(presentation.getSlides().get_Item(0), section2);
    
	// حفظ العرض التقديمي الوجهة إلى القرص
    presentation.save(dataDir + "CloneSlideIntoSpecifiedSection.pptx", SaveFormat.Pptx);
} finally {
    if (presentation != null) presentation.dispose();
}

الأسئلة المتكررة

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

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

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

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

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

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