تحسين عروضك التقديمية باستخدام AutoFit على Android

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

textbox-in-powerpoint

  • عندما يصبح النص داخل مربع النص أطول أو أكبر، يقوم PowerPoint تلقائيًا بتكبير مربع النص—يزيد ارتفاعه—ليستوعب نصًا أكثر.
  • عندما يصبح النص داخل مربع النص أقصر أو أصغر، يقوم PowerPoint تلقائيًا بتقليل حجم مربع النص—ينقص ارتفاعه—لإزالة المساحة الزائدة.

في PowerPoint، هناك أربعة معلمات أو خيارات مهمة تتحكم في سلوك الملاءمة التلقائية (autofit) لمربع النص:

  • Do not Autofit
  • Shrink text on overflow
  • Resize shape to fit text
  • Wrap text in shape.

autofit-options-powerpoint

توفر Aspose.Slides لنظام Android عبر Java خيارات مماثلة—بعض الخصائص داخل الفئة TextFrameFormat التي تتيح لك التحكم في سلوك الملاءمة التلقائية لمربعات النص في العروض التقديمية.

تغيير حجم الشكل ليتناسب مع النص

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

alwaysfit-setting-powerpoint

يعرض هذا الكود Java كيفية تحديد أن النص يجب أن يتناسب دائمًا مع صندوقه في عرض PowerPoint:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
    autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);

    ITextFrameFormat textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
    textFrameFormat.setAutofitType(TextAutofitType.Shape);

    pres.save("Output-presentation.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

إذا أصبح النص أطول أو أكبر، سيتم تعديل حجم مربع النص تلقائيًا (زيادة في الارتفاع) لضمان أن يتسع له جميع النص. إذا أصبح النص أقصر، يحدث العكس.

عدم الملاءمة التلقائية

إذا كنت تريد أن يحتفظ مربع النص أو الشكل بأبعاده بغض النظر عن التغييرات التي تُجرى على النص المحتوى، يجب عليك استخدام خيار Do not Autofit. لتحديد هذا الإعداد، قم بتعيين خاصية AutofitType (من فئة TextFrameFormat) إلى None.

donotautofit-setting-powerpoint

يعرض هذا الكود Java كيفية تحديد أن مربع النص يجب أن يحتفظ بأبعاده دائمًا في عرض PowerPoint:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);
	
    Portion portion = new Portion("lorem ipsum...");
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
    autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);
	
    ITextFrameFormat textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
    textFrameFormat.setAutofitType(TextAutofitType.None);
	
    pres.save("Output-presentation.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

عندما يصبح النص أطول من الصندوق، يخرج خارجًا.

تصغير النص عند التدفق الزائد

إذا أصبح النص أطول من الصندوق، يمكنك عبر خيار Shrink text on overflow تحديد أن حجم النص وتباعده يجب تقليصهما ليتناسب مع الصندوق. لتحديد هذا الإعداد، قم بتعيين خاصية AutofitType (من فئة TextFrameFormat) إلى Normal.

shrinktextonoverflow-setting-powerpoint

يعرض هذا الكود Java كيفية تحديد أن النص يجب أن يُصغر عند التدفق الزائد في عرض PowerPoint:

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);
	
    Portion portion = new Portion("lorem ipsum...");
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
    autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);
	
    ITextFrameFormat textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
    textFrameFormat.setAutofitType(TextAutofitType.Normal);
	
    pres.save("Output-presentation.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

تغليف النص

إذا كنت تريد أن يتم تغليف النص داخل الشكل عندما يتجاوز النص حد الشكل (العرض فقط)، يجب عليك استخدام معامل Wrap text in shape. لتحديد هذا الإعداد، يجب تعيين خاصية WrapText (من فئة TextFrameFormat) إلى true.

Presentation pres = new Presentation();
try {
    ISlide slide = pres.getSlides().get_Item(0);
    IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
    autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);

    ITextFrameFormat textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
    textFrameFormat.setWrapText(NullableBool.True);

    pres.save("Output-presentation.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

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

هل تؤثر الهوامش الداخلية لإطار النص على AutoFit؟

نعم. تقلل الهوامش الداخلية (Padding) من المساحة المتاحة للنص، لذا سيُفعل AutoFit مبكرًا—سيتم تصغير الخط أو تعديل حجم الشكل بسرعة أكبر. تحقق من الهوامش واضبطها قبل ضبط AutoFit.

كيف يتفاعل AutoFit مع الفواصل اليدوية والناعمة؟

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

هل يؤثر تغيير خط السمة أو تشغيل استبدال الخطوط على نتائج AutoFit؟

نعم. استبدال الخط بخط له مقاييس حروف مختلفة يغيّر عرض/ارتفاع النص، مما قد يغيّر حجم الخط النهائي وتغليف السطر. بعد أي تغيير أو استبدال للخط، يجب مراجعة الشرائح مرة أخرى.