الحصول على حدود جزء النص من العروض التقديمية في JavaScript

نظرة عامة

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

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

الحصول على حدود جزء النص

استخدم Portion.getRect لاسترجاع المستطيل المحيط بجزء النص:

const presentation = new aspose.slides.Presentation("Shapes.pptx");
try {
    const slide = presentation.getSlides().get_Item(0);
    const shape = slide.getShapes().get_Item(0);
    const paragraphs = shape.getTextFrame().getParagraphs();

    for (let paragraphIndex = 0; paragraphIndex < paragraphs.getCount(); paragraphIndex++) {
        const paragraph = paragraphs.get_Item(paragraphIndex);
        const portions = paragraph.getPortions();

        for (let portionIndex = 0; portionIndex < portions.getCount(); portionIndex++) {
            const portion = portions.get_Item(portionIndex);
            const rectangle = portion.getRect();
            console.log("X = " + rectangle.x + "; Y = " + rectangle.y + "; Width = " + rectangle.width + "; Height = " + rectangle.height);
        }
    }
} finally {
    presentation.dispose();
}

الحصول على إحداثيات جزء النص

استخدم Portion.getCoordinates لاسترجاع إحداثيات بداية جزء النص:

const presentation = new aspose.slides.Presentation("Shapes.pptx");
try {
    const slide = presentation.getSlides().get_Item(0);
    const shape = slide.getShapes().get_Item(0);
    const paragraphs = shape.getTextFrame().getParagraphs();

    for (let paragraphIndex = 0; paragraphIndex < paragraphs.getCount(); paragraphIndex++) {
        const paragraph = paragraphs.get_Item(paragraphIndex);
        const portions = paragraph.getPortions();

        for (let portionIndex = 0; portionIndex < portions.getCount(); portionIndex++) {
            const portion = portions.get_Item(portionIndex);
            const point = portion.getCoordinates();
            console.log("X = " + point.x + "; Y = " + point.y);
        }
    }
} finally {
    presentation.dispose();
}

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

هل يمكنني تطبيق ارتباط تشعبي على جزء فقط من النص داخل فقرة واحدة؟

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

كيف يعمل وراثة النمط: ماذا يتجاوز الجزء، وماذا يُستمد من الفقرة أو إطار النص؟

لخصائص المستوى الخاص بالجزء أعلى أولوية. إذا لم تُحدَّد خاصية على Portion، فإن Aspose.Slides يأخذها من Paragraph. وإذا لم تُحدَّد هناك أيضًا، يستخدم Aspose.Slides نمط TextFrame أو theme.

ماذا يحدث إذا كان الخط المحدد للجزء غير موجود على الجهاز أو الخادم المستهدف؟

تُطبق قواعد استبدال الخط. قد يتغير تدفق النص: يمكن أن تتغير المقاييس، والكسرة، والعرض، مما يؤثر على التموضع الدقيق.

هل يمكنني ضبط شفافية تعبئة النص أو تدرج لوني خاص بالجزء بشكل مستقل عن باقي الفقرة؟

نعم، يمكن أن تختلف لون النص، والتعبئة، والشفافية على مستوى Portion عن الأجزاء المجاورة.