عمليات العروض التقديمية منخفضة الكود في Java

نظرة عامة

توفر حزمة 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.

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

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

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

هل يمكن لـ 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 لكتابة النتيجة.

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