الحصول على حدود جزء النص من العروض التقديمية في PHP
نظرة عامة
يمثل جزء النص شظية محددة من النص داخل الفقرة ويسمح لك بالعمل مع تلك الشظية بشكل مستقل عن المحتوى المحيط. في Aspose.Slides، يمكن استخدام الأجزاء عندما تحتاج إلى استرداد حدود شظية النص، أو تطبيق تنسيق على جزء فقط من الفقرة، أو التحكم في سلوك النص على مستوى أكثر تفصيلاً. توضح هذه المقالة كيفية الحصول على المستطيل المحدد للجزء باستخدام Portion::getRect. كما توضح كيفية الحصول على إحداثيات بداية الجزء باستخدام Portion::getCoordinates. بالإضافة إلى ذلك، تسلط الضوء على سيناريوهات شائعة تتعلق بالأجزاء، مثل تطبيق ارتباط تشعبي على شظية نص واحدة، وفهم كيفية حل التنسيق عبر الجزء والفقرة وإطار النص ووراثة السمة، ومعالجة الحالات التي يكون فيها الخط المحدد غير متوفر.
الحصول على حدود جزء النص
استخدم Portion::getRect لاسترجاع المستطيل المحدد لجزء النص:
$presentation = new Presentation("Shapes.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$shape = $slide->getShapes()->get_Item(0);
foreach ($shape->getTextFrame()->getParagraphs() as $paragraph) {
foreach ($paragraph->getPortions() as $portion) {
$rectangle = $portion->getRect();
$rectangleX = java_values($rectangle->getX());
$rectangleY = java_values($rectangle->getY());
$rectangleWidth = java_values($rectangle->getWidth());
$rectangleHeight = java_values($rectangle->getHeight());
echo("X = " . $rectangleX . "; Y = " . $rectangleY . "; Width = " . $rectangleWidth . "; Height = " . $rectangleHeight);
}
}
} finally {
$presentation->dispose();
}
الحصول على إحداثيات جزء النص
استخدم Portion::getCoordinates لاسترجاع إحداثيات بداية جزء النص:
$presentation = new Presentation("Shapes.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$shape = $slide->getShapes()->get_Item(0);
foreach ($shape->getTextFrame()->getParagraphs() as $paragraph) {
foreach ($paragraph->getPortions() as $portion) {
$point = $portion->getCoordinates();
$pointX = java_values($point->getX());
$pointY = java_values($point->getY());
echo("X = " . $pointX . "; Y = " . $pointY);
}
}
} finally {
$presentation->dispose();
}
الأسئلة المتكررة
هل يمكنني تطبيق ارتباط تشعبي على جزء فقط من النص داخل فقرة واحدة؟
نعم، يمكنك تعيين ارتباط تشعبي لجزء فردي؛ سيتم جعل تلك الشظية فقط قابلة للنقر، وليس الفقرة بأكملها.
كيف يعمل وراثة الأنماط: ما الذي يتجاوزّه الجزء، وما الذي يُستَمدّ من الفقرة أو إطار النص؟
تتمتع خصائص المستوى الجزئي بالأولوية الأعلى. إذا لم تُحدد خاصية على الـPortion، فإن Aspose.Slides يأخذها من الـParagraph. إذا لم تُحدد هناك أيضاً، يستخدم Aspose.Slides نمط الـTextFrame أو الـtheme .
ماذا يحدث إذا كان الخط المحدد لجزء ما غير موجود على الجهاز أو الخادم المستهدف؟
تنطبق قواعد استبدال الخطوط. قد يتدفق النص مجدداً: يمكن أن تتغير المقاييس والكسرة والعرض، وهو ما يؤثر على الدقة في تحديد المواقع.
هل يمكنني تعيين شفافية تعبئة النص أو تدرج لوني خاص بالجزء بشكل مستقل عن باقي الفقرة؟
نعم، يمكن أن يختلف لون النص والتعبئة والشفافية على مستوى الـPortion عن الشظايا المجاورة.