كيفية ضبط مسافة بادئة للسطر الأول للفقرة في عروض ONLYOFFICE التقديمية

١٢ مايو ٢٠٢٥بواسطة Moncif MEFTAH

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

How to adjust paragraph first line indentation in ONLYOFFICE presentations

بناء الماكرو

تحديد قيمة المسافة البادئة

يبدأ الماكرو بتعريف مقدار المسافة البادئة للسطر الأول لكل فقرة:

 const indentationValue = 720; 
/* Please enter the paragraph's first line indentation value. A value of 0 means no indentation,
 and any value greater than 0 will indent the text. The value is specified in twentieths of a point (1/1440 of an inch).*/

indentationValue: هذا المتغير الثابت يُعرّف المسافة البادئة للسطر الأول بعشرين من النقطة (1/1440 من البوصة)، ويتم ضبطه على 720 افتراضياً، وهو ما يعادل مسافة بادئة بنصف بوصة. القيمة 0 تعني عدم وجود مسافة بادئة، بينما أي قيمة أكبر من 0 ستطبق مسافة بادئة على النص. يمكن للمستخدمين ضبط قيمة المسافة البادئة وفقاً لتفضيلاتهم.

استرداد العرض التقديمي وعدد الشرائح

قبل أن نسترد العرض التقديمي الحالي، نتأكد من أن الماكرو ينفذ فقط عندما تكون قيمة المسافة البادئة للمستخدم رقمًا صحيحًا غير سالب:

if (!isNaN(indentationValue) && indentationValue >= 0) {

نسترد العرض التقديمي الحالي باستخدام طريقة GetPresentation()، ويتم الحصول على العدد الإجمالي للشرائح باستخدام طريقة GetSlidesCount():

        let presentation = Api.GetPresentation();
        let nSlides = presentation.GetSlidesCount(); // Get the number of slides in the presentation

التكرار عبر كل شريحة، ومربع نص في الشريحة، وفقرة

    // Loop through each slide
        for (let slideIndex = 0; slideIndex < nSlides; slideIndex++) {
            let slide = presentation.GetSlideByIndex(slideIndex); // Get the slide
            let aShapes = slide.GetAllShapes(); // Get all shapes in the slide

            // Loop through each shape in the slide
            for (let shapeIndex = 0; shapeIndex < aShapes.length; shapeIndex++) {
                let content = aShapes[shapeIndex].GetDocContent(); // Get the document content of the shape
            
                if (content) {
                    let count = content.GetElementsCount(); // Get the number of elements (paragraphs) in the shape
            
                    // Loop through each paragraph in the shape
                    for (let elementIndex = 0; elementIndex < count; elementIndex++) {
                        let paragraph = content.GetElement(elementIndex); // Get the paragraph element
  • GetSlideByIndex(slideIndex) الوصول إلى كائن الشريحة عند الفهرس (الموضع) المحدد في العرض التقديمي.
  • GetAllShapes() استرداد جميع كائنات الأشكال داخل الشريحة الحالية. هذه الطريقة تعيد مجموعة من جميع الأشكال (مثل مربعات النصوص والصور والعناصر الأخرى) الموجودة في الشريحة.
  • GetDocContent() استرداد محتوى المستند لشكل معين. هذه الطريقة تعيد المحتوى النصي المرتبط بشكل ما.
  • GetElementsCount() استرداد العدد الإجمالي للعناصر (الفقرات) داخل الشكل المحدد.
  • GetElement(elementIndex) الوصول إلى عنصر معين (فقرة) داخل الشكل، بناءً على الفهرس المقدم (elementIndex).

في هذا القسم، نقوم بما يلي:

  1. التكرار عبر جميع الشرائح في العرض التقديمي.
  2. التكرار عبر جميع الأشكال (مربعات النصوص) في الشريحة.
  3. الحصول على المحتوى النصي للشكل.
  4. التحقق مما إذا كان الشكل يحتوي على محتوى نصي.
  5. التكرار عبر كل عنصر محتوى شكل (فقرة) في الشكل.
  6. الحصول على عنصر الفقرة.

ضبط المسافة البادئة للسطر الأول للفقرة

نقوم بتعيين المسافة البادئة المطلوبة للسطر الأول للفقرات ضمن مربعات النصوص باستخدام GetParaPr() لاسترداد خصائص الفقرة وSetIndFirstLine(indentationValue) لضبط المسافة البادئة:

                  let paraPr = paragraph.GetParaPr();
                        paraPr.SetIndFirstLine(indentationValue);
                    }
                }
            }
        }
    }

كود الماكرو الكامل

الماكرو بأكمله هو التالي:

(function () {
    const indentationValue = 720; 
/* Please enter the paragraph's first line indentation value. A value of 0 means no indentation, 
and any value greater than 0 will indent the text. The value is specified in twentieths of a point (1/1440 of an inch).*/

    if (!isNaN(indentationValue) && indentationValue >= 0) {
        
        let presentation = Api.GetPresentation();
        let nSlides = presentation.GetSlidesCount(); // Get the number of slides in the presentation
        
        // Loop through each slide
        for (let slideIndex = 0; slideIndex < nSlides; slideIndex++) {
            let slide = presentation.GetSlideByIndex(slideIndex); // Get the slide
            let aShapes = slide.GetAllShapes(); // Get all shapes in the slide

            // Loop through each shape in the slide
            for (let shapeIndex = 0; shapeIndex < aShapes.length; shapeIndex++) {
                let content = aShapes[shapeIndex].GetDocContent(); // Get the document content of the shape
            
                if (content) {
                    let count = content.GetElementsCount(); // Get the number of elements (paragraphs) in the shape
            
                    // Loop through each paragraph in the shape
                    for (let elementIndex = 0; elementIndex < count; elementIndex++) {
                        let paragraph = content.GetElement(elementIndex); // Get the paragraph element
                        let paraPr = paragraph.GetParaPr();
                        paraPr.SetIndFirstLine(indentationValue);
                    }
                }
            }
        }
    }
})();

لنقم بتشغيل الماكرو الخاص بنا ونرى كيف يعمل!

 

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

نشجعكم على استكشاف طرق ONLYOFFICE API الخاصة بنا وإنشاء وحدات الماكرو الخاصة بكم لزيادة تحسين سير عملكم. إذا كان لديكم أي أفكار أو اقتراحات، فلا تترددوا في التواصل معنا — نود أن نسمع ملاحظاتكم!

عن المؤلف

How to adjust paragraph first line indentation in ONLYOFFICE presentations

ONLYOFFICE ١. أنشئ حسابك المجاني من

،٢. قم بعرض و تحرير أو التعاون على المستندات، الجداول ، العروض التقديمية