عمليات العرض التقديمي منخفضة الشيفرة على Android

نظرة عامة

توفر حزمة com.aspose.slides فئات مساعدة ثابتة للعمليات الشائعة على العروض التقديمية. تغلف هذه المساعدات سير عمل نموذج الكائنات المُستخدم بصورة متكررة في طرق مركّزة، بحيث يمكنك تحويل أو دمج الملفات، معالجة عناصر العرض، جمع الأشكال، وإزالة المحتوى غير المستخدم بكتابة أقل.

تكون المساعدات منخفضة الشيفرة الأكثر فائدة عندما يُطبق العملية على ملف أو عرض تقديمي كامل ويتطابق سير العمل الافتراضي مع متطلباتك. استخدم نموذج كائنات Aspose.Slides الكامل عندما تحتاج إلى تحكم دقيق في الشرائح الفردية، القوالب الرئيسية، التخطيطات، الأشكال، إعدادات التصدير، أو العلاقات بين عناصر العرض.

الجدول التالي يلخّص المساعدات المتوفرة:

المساعد الاستخدام
Convert تحويل عرض تقديمي إلى تنسيق آخر باستخدام استدعاء مباشر من ملف إلى ملف.
Merger دمج ملفات عروض تقديمية كاملة من نفس التنسيق.
ForEach تنفيذ إجراء لكل شريحة أو شكل أو فقرة أو جزء نصي.
Collect استخراج الأشكال من العرض التقديمي بالكامل لإجراء معالجة أو تحليل متكرر.
Compress إزالة القوالب الرئيسية والتخطيطات غير المستخدمة وتقليل بيانات الخطوط المضمّنة.

تحويل عرض تقديمي

استخدم Convert.autoByExtension عندما يكون امتداد ملف الإخراج كافياً لاختيار تنسيق التصدير. يفتح الأسلوب العرض التقديمي المصدر، يحدد التنسيق المطلوب من مسار الإخراج، ثم يكتب النتيجة.

import com.aspose.slides.Convert;

Convert.autoByExtension("input.pptx", "output.pdf");

فئة Convert توفر أيضاً طرقاً مخصصة لإنتاج PDF وSVG وJPEG وPNG وTIFF. استخدم نموذج الكائن الكامل عندما تحتاج إلى فحص أو تعديل العرض قبل التصدير أو تكوين خيار تصدير غير متاح في المساعد المختار. راجع Convert Presentation للحصول على سير عمل وخيارات خاصة بكل تنسيق.

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

استخدم Merger.process لدمج ملفات عروض تقديمية كاملة باستدعاء واحد. يجب أن تكون العروض المدخلة بنفس تنسيق الملف.

import com.aspose.slides.Merger;

String[] inputFiles = { "part-1.pptx", "part-2.pptx" };
Merger.process(inputFiles, "merged.pptx");

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

التنقل عبر عناصر العرض التقديمي

فئة ForEach تستدعي رد نداء لكل نوع مطلوب من عناصر العرض. إنها تتجنب الحلقات المتداخلة للمجموعات وتُعد مريحة للفحص أو تغييرات التنسيق على مستوى العرض بالكامل.

المثال التالي يستخدم ForEach.slide، ForEach.shape، ForEach.paragraph، وForEach.portion لتفتيش العناصر المقابلة:

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    ForEach.slide(presentation, (slide, index) -> {
        System.out.println(String.format("Slide %d: %d shapes", index, slide.getShapes().size()));
    });

    ForEach.shape(presentation, (shape, slide, index) -> {
        System.out.println(String.format("Shape %d on %s: %s", index, slide.getClass().getSimpleName(), shape.getName()));
    });

    ForEach.paragraph(presentation, (paragraph, slide, index) -> {
        System.out.println(String.format("Paragraph %d on %s: %s", index, slide.getClass().getSimpleName(), paragraph.getText()));
    });

    ForEach.portion(presentation, (portion, paragraph, slide, index) -> {
        System.out.println(String.format("Portion %d on %s: %s", index, slide.getClass().getSimpleName(), portion.getText()));
    });
} finally {
    presentation.dispose();
}

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

جمع الأشكال

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    Iterable<Shape> shapes = Collect.shapes(presentation);

    for (Shape shape : shapes) {
        System.out.println(String.format("%s: %s", shape.getName(), shape.getClass().getSimpleName()));
    }
} finally {
    presentation.dispose();
}

استخدم ForEach.shape بدلاً من ذلك عندما يمكن معالجة كل شكل فورًا ولا تحتاج إلى الاحتفاظ بالنتيجة المجمعة.

ضغط محتوى العرض التقديمي

فئة Compress يمكنها إزالة العناصر الهيكلية غير المستخدمة وتقليل بيانات الخطوط المضمّنة:

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    Compress.removeUnusedLayoutSlides(presentation);
    Compress.removeUnusedMasterSlides(presentation);
    Compress.compressEmbeddedFonts(presentation);

    presentation.save("compressed.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

أزل التخطيطات غير المستخدمة قبل القوالب غير المستخدمة بحيث يمكن أيضًا حذف قالب يصبح غير مشار إليه بعد تنظيف التخطيطات. احفظ العرض المحسّن إلى ملف جديد إذا قد تحتاج لاحقًا إلى القوالب أو التخطيطات الأصلية أو بيانات الخط المضمّن الكاملة. لمزيد من التفاصيل، راجع Slide Master وEmbedded Font.

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

متى ينبغي أن أستخدم واجهة برمجة التطبيقات منخفضة الشيفرة بدلاً من نموذج الكائن الكامل؟

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

هل يمكن لـ Merger دمج عروض تقديمية بتنسيقات ملفات مختلفة؟

لا. يتطلب Merger.process أن تكون العروض المدخلة بنفس التنسيق. حوّل الملفات المدخلة إلى تنسيق مشترك أولاً، على سبيل المثال باستخدام Convert.autoByExtension، ثم دمج الملفات المحوّلة.

هل يعالج ForEach القوالب، التخطيطات، وشرائح الملاحظات؟

ForEach.slide يتنقل عبر الشرائح العادية فقط. عمليات ForEach.shape، ForEach.paragraph، وForEach.portion تشمل الشرائح العادية والقوالب والتخطيطات بشكل افتراضي. استخدم النسخ ذات المعلمة includeNotes مُعينة إلى true لتضمين شرائح الملاحظات.

ما الفرق بين ForEach.shape و Collect.shapes؟

استخدم ForEach.shape لمعالجة كل شكل فورًا عبر رد نداء. استخدم Collect.shapes عندما تحتاج إلى نتيجة قابلة للتكرار يمكن الاحتفاظ بها، تصفيتها، عدّها أو تنقّلها عدة مرات.

هل يجعل Compress دائمًا ملف العرض أصغر؟

ليس بالضرورة. النتيجة تعتمد على ما إذا كان العرض يحتوي على تخطيطات غير مستخدمة، قوالب رئيسية غير مستخدمة، أو خطوط مضمنة بأحرف غير مستعملة. إذا لم يتوفر أي من هذه العناصر، قد لا تقلل عمليات Compress حجم الملف.

هل تُحفظ التغييرات التي يجريها ForEach أو Compress تلقائيًا؟

لا. هذه المساعدات تعمل على كائن Presentation المحمّل في الذاكرة. بعد تعديل العناصر في رد نداء ForEach أو تشغيل Compress، يجب استدعاء Presentation.save لكتابة النتيجة.

مقالات ذات صلة