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

نظرة عامة

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

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

تلخص الجدول التالي المساعدات المتاحة:

مساعد استخدامه لـ
تحويل تحويل عرض تقديمي إلى تنسيق آخر عبر استدعاء ملف إلى ملف مباشر.
دمج دمج ملفات عروض تقديمية كاملة من نفس التنسيق.
لكل تشغيل إجراء لكل شريحة أو شكل أو فقرة أو جزء نصي.
جمع استرجاع الأشكال من كامل العرض للتعامل المتكرر أو التحليل.
ضغط إزالة القوالب والتخطيطات غير المستخدمة وتقليل بيانات الخطوط المضمّنة.

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

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

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

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

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

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

const inputFiles = ["first.pptx", "second.pptx"];
aspose.slides.Merger.process(inputFiles, "merged.pptx");

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

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

تستدعي فئة لكل استدعاءً ردًا لكل نوع مطلوب من عناصر العرض. يخفف ذلك من حلقات التجميع المتداخلة ويكون مناسبًا للفحص أو تعديل التنسيقات على مستوى العرض بالكامل. في Node.js، أنشئ تطبيقات لواجهات الرد باستخدام java.newProxy.

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

const java = require("java");
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

const presentation = new aspose.slides.Presentation("input.pptx");
try {
    const slideCallback = java.newProxy("com.aspose.slides.ForEach$ForEachSlideCallback", {
        invoke: function (slide, index) {
            console.log(`Slide ${index}: ${slide.getShapes().size()} shapes`);
        }
    });
    aspose.slides.ForEach.slide(presentation, slideCallback);

    const shapeCallback = java.newProxy("com.aspose.slides.ForEach$ForEachShapeCallback", {
        invoke: function (shape, slide, index) {
            console.log(`Shape ${index} on ${slide.getClass().getSimpleName()}: ${shape.getName()}`);
        }
    });
    aspose.slides.ForEach.shape(presentation, shapeCallback);

    const paragraphCallback = java.newProxy("com.aspose.slides.ForEach$ForEachParagraphCallback", {
        invoke: function (paragraph, slide, index) {
            console.log(`Paragraph ${index} on ${slide.getClass().getSimpleName()}: ${paragraph.getText()}`);
        }
    });
    aspose.slides.ForEach.paragraph(presentation, paragraphCallback);

    const portionCallback = java.newProxy("com.aspose.slides.ForEach$ForEachPortionCallback", {
        invoke: function (portion, paragraph, slide, index) {
            console.log(`Portion ${index} on ${slide.getClass().getSimpleName()}: ${portion.getText()}`);
        }
    });
    aspose.slides.ForEach.portion(presentation, portionCallback);
} finally {
    presentation.dispose();
}

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

جمع الأشكال

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

const presentation = new aspose.slides.Presentation("input.pptx");
try {
    const shapes = aspose.slides.Collect.shapes(presentation);
    const iterator = shapes.iterator();

    while (iterator.hasNext()) {
        const shape = iterator.next();
        console.log(`${shape.getName()}: ${shape.getClass().getSimpleName()}`);
    }
} finally {
    presentation.dispose();
}

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

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

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

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

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

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

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

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

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

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

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

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

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

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

ما الفرق بين لكل.shape و جمع.shapes؟

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

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

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

هل تُحفظ التغييرات التي يجريها لكل أو ضغط تلقائيًا؟

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

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