تعزيز عروضك التقديمية باستخدام AutoFit في PHP
افتراضيًا، عندما تضيف مربع نص، يستخدم Microsoft PowerPoint إعداد Resize shape to fix text لمربع النص — فهو يعيد تحجيم مربع النص تلقائيًا لضمان أن النص دائمًا يتناسب معه.

- عندما يصبح النص في مربع النص أطول أو أكبر، يقوم PowerPoint تلقائيًا بتكبير مربع النص — يزيد ارتفاعه — للسماح له بحمل نص أكبر.
- عندما يصبح النص في مربع النص أقصر أو أصغر، يقوم PowerPoint تلقائيًا بتقليل حجم مربع النص — يقلل ارتفاعه — لإزالة المساحة الزائدة.
في PowerPoint، هذه هي المعلمات الأربعة الهامة أو الخيارات التي تتحكم في سلوك الملاءمة التلقائية لمربع النص:
- Do not Autofit
- Shrink text on overflow
- Resize shape to fit text
- Wrap text in shape.

توفر Aspose.Slides للـ PHP عبر Java خيارات مماثلة — بعض الخصائص ضمن الفئة TextFrameFormat — التي تتيح لك التحكم في سلوك الملاءمة التلقائية لمربعات النص في العروض التقديمية.
إعادة تحجيم الشكل ليتناسب مع النص
إذا كنت ترغب في أن يتناسب النص داخل صندوق دائمًا مع الصندوق بعد إجراء تغييرات على النص، يجب عليك استخدام خيار Resize shape to fix text. لتحديد هذا الإعداد، قم بتعيين الخاصية AutofitType (من الفئة TextFrameFormat) إلى Shape.

$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 30, 30, 350, 100);
$portion = new Portion("lorem ipsum...");
$portion->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
$portion->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$autoShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->add($portion);
$textFrameFormat = $autoShape->getTextFrame()->getTextFrameFormat();
$textFrameFormat::setAutofitType(TextAutofitType::Shape);
$pres->save("Output-presentation.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
إذا أصبح النص أطول أو أكبر، سيتم إعادة تحجيم مربع النص تلقائيًا (زيادة في الارتفاع) لضمان أن جميع النص يتناسب معه. إذا أصبح النص أقصر، يحدث العكس.
عدم الملاءمة التلقائية
إذا كنت ترغب في أن يحتفظ مربع النص أو الشكل بأبعاده بغض النظر عن التغييرات التي تطرأ على النص الذي يحتويه، يجب عليك استخدام خيار Do not Autofit. لتحديد هذا الإعداد، قم بتعيين الخاصية AutofitType (من الفئة TextFrameFormat) إلى None.

$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 30, 30, 350, 100);
$portion = new Portion("lorem ipsum...");
$portion->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
$portion->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$autoShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->add($portion);
$textFrameFormat = $autoShape->getTextFrame()->getTextFrameFormat();
$textFrameFormat::setAutofitType(TextAutofitType::None);
$pres->save("Output-presentation.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
عندما يصبح النص أطول من الصندوق، ينسكب خارج الصندوق.
تقليص النص عند الفائض
إذا أصبح النص طويلاً جدًا بالنسبة لصندوقه، من خلال خيار Shrink text on overflow يمكنك تحديد أن حجم النص والمسافات بين الأحرف يجب أن تُقلص لتناسب الصندوق. لتحديد هذا الإعداد، قم بتعيين الخاصية AutofitType (من الفئة TextFrameFormat) إلى Normal.

$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 30, 30, 350, 100);
$portion = new Portion("lorem ipsum...");
$portion->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
$portion->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$autoShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->add($portion);
$textFrameFormat = $autoShape->getTextFrame()->getTextFrameFormat();
$textFrameFormat::setAutofitType(TextAutofitType::Normal);
$pres->save("Output-presentation.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Info
عند استخدام خيار Shrink text on overflow، يُطبق الإعداد فقط عندما يصبح النص أطول من الصندوق.التفاف النص
إذا كنت ترغب في أن يلتف النص داخل الشكل عندما يتجاوز النص حدود الشكل (العرض فقط)، عليك استخدام المعامل Wrap text in shape. لتحديد هذا الإعداد، يجب تعيين الخاصية WrapText (من الفئة TextFrameFormat) إلى true.
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$autoShape = $slide->getShapes()->addAutoShape(ShapeType::Rectangle, 30, 30, 350, 100);
$portion = new Portion("lorem ipsum...");
$portion->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
$portion->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
$autoShape->getTextFrame()->getParagraphs()->get_Item(0)->getPortions()->add($portion);
$textFrameFormat = $autoShape->getTextFrame()->getTextFrameFormat();
$textFrameFormat::setWrapText(NullableBool::True);
$pres->save("Output-presentation.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Note
إذا قمت بتعيين الخاصيةWrapText إلى False لشكل ما، عندما يصبح النص داخل الشكل أطول من عرض الشكل، يتم تمديد النص خارج حدود الشكل على سطر واحد.
FAQ
هل تؤثر الهوامش الداخلية لإطار النص على AutoFit?
نعم. يقلل الحشو (الهوامش الداخلية) من مساحة النص المتاحة، لذا سيتدخل AutoFit مبكرًا — تقليل الخط أو إعادة تحجيم الشكل في وقت أقرب. تحقق من الهوامش وقم بضبطها قبل ضبط AutoFit.
كيف يتفاعل AutoFit مع فواصل الأسطر اليدوية والناعمة؟
تظل الفواصل القسرية موجودة، ويتكيف AutoFit مع حجم الخط والمسافات حولها. إزالة الفواصل غير الضرورية غالبًا ما يقلل من شدة تقليل النص بواسطة AutoFit.
هل يؤثر تغيير خط السمة أو تفعيل استبدال الخط على نتائج AutoFit؟
نعم. استبدال الخط بخط يملك مقاييس رموز مختلفة يغير عرض/ارتفاع النص، مما قد يغير حجم الخط النهائي وتفاف السطر. بعد أي تغيير أو استبدال للخط، أعد فحص الشرائح.