Verbeter uw presentaties met AutoFit in JavaScript

Inleiding

Standaard, wanneer je een tekstvak toevoegt, gebruikt Microsoft PowerPoint de instelling Resize shape to fix text voor het tekstvak – het formaat van het tekstvak wordt automatisch aangepast zodat de tekst er altijd in past.

textbox-in-powerpoint

  • Wanneer de tekst in het tekstvak langer of groter wordt, vergroot PowerPoint automatisch het tekstvak – de hoogte wordt vergroot – zodat er meer tekst in past.
  • Wanneer de tekst in het tekstvak korter of kleiner wordt, verkleint PowerPoint automatisch het tekstvak – de hoogte wordt verkleind – om overtollige ruimte te verwijderen.

In PowerPoint zijn dit de 4 belangrijke parameters of opties die het autofit‑gedrag voor een tekstvak bepalen:

  • 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 biedt vergelijkbare opties – enkele eigenschappen onder de TextFrameFormat‑klasse – die je in staat stellen het autofit‑gedrag voor tekstvakken in presentaties te regelen.

Resize Shape to Fit Text

Als je wilt dat de tekst in een kader altijd in dat kader past nadat de tekst is aangepast, moet je de optie Resize shape to fix text gebruiken. Om deze instelling te specificeren, roep je de setAutofitType‑methode van de TextFrameFormat‑klasse aan met de waarde Shape.

alwaysfit-setting-powerpoint

Deze JavaScript‑code laat zien hoe je opgeeft dat een tekst altijd in zijn kader moet passen in een PowerPoint‑presentatie:

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();
    }
}

Wordt de tekst langer of groter, dan wordt het tekstvak automatisch vergroot (hoogte toename) zodat alle tekst past. Wordt de tekst korter, gebeurt het omgekeerde.

Do Not Autofit

Als je wilt dat een tekstvak of vorm zijn afmetingen behoudt, ongeacht de wijzigingen in de tekst, moet je de optie Do not Autofit gebruiken. Om deze instelling te specificeren, roep je de setAutofitType‑methode van de TextFrameFormat‑klasse aan met de waarde None.

donotautofit-setting-powerpoint

Deze JavaScript‑code laat zien hoe je opgeeft dat een tekstvak altijd zijn afmetingen behoudt in een PowerPoint‑presentatie:

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();
    }
}

Wanneer de tekst te lang wordt voor het kader, stroomt deze over.

Shrink Text on Overflow

Als een tekst te lang wordt voor zijn kader, kun je met de optie Shrink text on overflow aangeven dat de grootte en de spatiëring van de tekst moeten worden verkleind zodat hij in het kader past. Om deze instelling te specificeren, roep je de setAutofitType‑methode van de TextFrameFormat‑klasse aan met de waarde Normal.

shrinktextonoverflow-setting-powerpoint

Deze JavaScript‑code laat zien hoe je opgeeft dat een tekst moet worden verkleind bij overflow in een PowerPoint‑presentatie:

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

Als je wilt dat de tekst in een vorm wordt afgebroken binnen die vorm wanneer de tekst breder wordt dan de vorm (alleen breedte), moet je de parameter Wrap text in shape gebruiken. Om deze instelling te specificeren, moet je de setWrapText‑methode van de TextFrameFormat‑klasse aanroepen met de waarde true.

Deze JavaScript‑code laat zien hoe je de Wrap Text‑instelling gebruikt in een PowerPoint‑presentatie:

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

Beïnvloeden de interne marges van het tekstframe AutoFit?

Ja. Padding (interne marges) verkleint de bruikbare ruimte voor tekst, waardoor AutoFit eerder wordt geactiveerd – de lettergrootte wordt verkleind of de vorm wordt eerder aangepast. Controleer en pas de marges aan voordat je AutoFit afstemt.

Hoe werkt AutoFit samen met handmatige en zachte regeleinden?

Geforceerde regeleinden blijven behouden en AutoFit past de lettergrootte en spatiëring eromheen aan. Het verwijderen van onnodige regeleinden vermindert vaak hoe agressief AutoFit de tekst moet verkleinen.

Heeft het wijzigen van het thema‑lettertype of het activeren van lettertype‑substitutie invloed op de AutoFit‑resultaten?

Ja. Het vervangen door een lettertype met andere glyph‑metriek verandert de breedte/hoogte van de tekst, wat de uiteindelijke lettergrootte en regelafbreking kan wijzigen. Na elke wijziging of substitutie van een lettertype moet je de dia’s opnieuw controleren.