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

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

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

ما الذي يمكن دمجه

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

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

خيارات الدمج

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

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

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

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

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

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

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

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

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

هذا الكود بلغة Java يوضح العملية الموضحة:

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getMasters().get_Item(0), true);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

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

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

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

Presentation presentation = new Presentation();
Presentation presentation1 = new Presentation("presentation1.pptx");
Presentation presentation2 = new Presentation("presentation2.pptx");
try {
    presentation.getSlides().removeAt(0);
    
    ISlide slide1 = getTitleSlide(presentation1);

    if (slide1 != null)
        presentation.getSlides().addClone(slide1);

    ISlide slide2 = getTitleSlide(presentation2);

    if (slide2 != null)
        presentation.getSlides().addClone(slide2);

    presentation.save("combined.pptx", SaveFormat.Pptx);
} finally {
    presentation2.dispose();
    presentation1.dispose();
    presentation.dispose();
}
static ISlide getTitleSlide(IPresentation presentation) {
    for (ISlide slide : presentation.getSlides()) {
        if (slide.getLayoutSlide().getLayoutType() == SlideLayoutType.Title) {
            return slide;
        }
    }
    return null;
}

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

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

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres2.getLayoutSlides().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

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

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

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        pres2.getSlideSize().setSize((float)pres1.getSlideSize().getSize().getWidth(), (float)pres1.getSlideSize().getSize().getHeight(), SlideSizeScaleType.EnsureFit);

        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide);
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

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

Presentation pres1 = new Presentation("pres1.pptx");
try {
    Presentation pres2 = new Presentation("pres2.pptx");
    try {
        for(ISlide slide : pres2.getSlides())
        {
            pres1.getSlides().addClone(slide, pres1.getSections().get_Item(0));
        }
    } finally {
        if (pres2 != null) pres2.dispose();
    }
    pres1.save("combined.pptx", SaveFormat.Pptx);
} finally {
    if (pres1 != null) pres1.dispose();
}

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

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

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

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

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

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

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

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