بهبود ارائه‌های شما با AutoFit در JavaScript

مقدمه

به‌طور پیش‌فرض، وقتی یک جعبه متن اضافه می‌کنید، 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 for Node.js via Java گزینه‌های مشابهی ارائه می‌دهد—برخی از ویژگی‌ها در کلاس TextFrameFormat که به شما امکان می‌دهد رفتار AutoFit برای جعبه‌های متن در ارائه‌ها را کنترل کنید.

تغییر اندازه شکل برای متناسب شدن با متن

اگر می‌خواهید متن داخل یک جعبه پس از هر تغییری دائم در همان جعبه جا بگیرد، باید از گزینه Resize shape to fix text استفاده کنید. برای تعیین این تنظیم، متد setAutofitType را از کلاس TextFrameFormat با مقدار Shape فراخوانی کنید.

alwaysfit-setting-powerpoint

این کد JavaScript نشان می‌دهد چگونه می‌توانید مشخص کنید که متن همیشه در جعبه خود در یک ارائه PowerPoint جا بگیرد:

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

اگر متن طولانی‌تر یا بزرگ‌تر شود، جعبه متن به‌صورت خودکار (ارتفاعش افزایش می‌یابد) تغییر اندازه می‌دهد تا تمام متن درون آن جا بگیرد. اگر متن کوتاه‌تر شود، برعکس اتفاق می‌افتد.

Do Not Autofit

اگر می‌خواهید یک جعبه متن یا شکل ابعاد خود را صرف‌نظر از هر تغییری که در متن آن ایجاد می‌شود، حفظ کند، باید از گزینه Do not Autofit استفاده کنید. برای تعیین این تنظیم، متد setAutofitType را از کلاس TextFrameFormat با مقدار None فراخوانی کنید.

donotautofit-setting-powerpoint

این کد JavaScript نشان می‌دهد چگونه می‌توانید مشخص کنید که یک جعبه متن ابعاد خود را در یک ارائه PowerPoint حفظ کند:

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

زمانی که متن برای جعبه‌اش بیش از حد طولانی شود، بیرون می‌ریزد.

Shrink Text on Overflow

اگر متنی برای جعبه‌اش بیش از حد طولانی شود، از گزینه Shrink text on overflow می‌توانید استفاده کنید تا اندازه و فاصله‌های متن کاهش یابند و در جعبه جا شوند. برای تعیین این تنظیم، متد setAutofitType را از کلاس TextFrameFormat با مقدار Normal فراخوانی کنید.

shrinktextonoverflow-setting-powerpoint

این کد JavaScript نشان می‌دهد چگونه می‌توانید مشخص کنید که متن در صورت overflow کوچک شود در یک ارائه PowerPoint:

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

Wrap Text

اگر می‌خواهید متن داخل یک شکل وقتی از حاشیه عرض شکل عبور کرد، در همان شکل به‌صورت خودکار بسته شود، باید از پارامتر Wrap text in shape استفاده کنید. برای تعیین این تنظیم، باید متد setWrapText را از کلاس TextFrameFormat با مقدار true فراخوانی کنید.

این کد JavaScript نشان می‌دهد چگونه می‌توانید تنظیم Wrap Text را در یک ارائه PowerPoint به کار ببندید:

var pres = new aspose.slides.Presentation();
try {
    var slide = pres.getSlides().get_Item(0);
    var autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 30, 30, 350, 100);
    var portion = new aspose.slides.Portion("lorem ipsum...");
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
    portion.getPortionFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
    autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);
    var textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
    textFrameFormat.setWrapText(aspose.slides.NullableBool.True);
    pres.save("Output-presentation.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

FAQ

آیا حاشیه‌های داخلی فریم متن بر AutoFit تأثیر می‌گذارند؟

بله. Padding (حاشیه‌های داخلی) مساحت قابل استفاده برای متن را کاهش می‌دهد، بنابراین AutoFit زودتر فعال می‌شود—اندازه فونت را کاهش یا شکل را زودتر تغییر اندازه می‌دهد. قبل از تنظیم AutoFit حاشیه‌ها را بررسی و تنظیم کنید.

AutoFit چگونه با شکست خطوط دستی و نرم تعامل می‌کند؟

شکست‌های اجباری در مکان خود باقی می‌مانند و AutoFit اندازه فونت و فاصله‌ها را اطراف آن‌ها تنظیم می‌کند. حذف شکست‌های غیرضروری معمولاً نیاز AutoFit برای کوچک‌سازی متن را کاهش می‌دهد.

آیا تغییر فونت تم یا اعمال جایگزینی فونت نتایج AutoFit را تحت تأثیر قرار می‌دهد؟

بله. جایگزینی به فونتی با معیارهای گلیف متفاوت عرض/ارتفاع متن را تغییر می‌دهد و می‌تواند اندازه نهایی فونت و بسته‌بندی خطوط را تحت تأثیر قرار دهد. پس از هر تغییر یا جایگزینی فونت، اسلایدها را دوباره بررسی کنید.