Verbeter uw presentaties met AutoFit in Python
Inleiding
Standaard, wanneer je een tekstvak toevoegt, gebruikt Microsoft PowerPoint de instelling Resize shape to fit text voor het tekstvak – het past automatisch de grootte van het tekstvak aan zodat de tekst er altijd in past.

- Wanneer de tekst in het tekstvak langer of groter wordt, vergroot PowerPoint het tekstvak – verhoogt de hoogte – zodat er meer tekst in past.
- Wanneer de tekst in het tekstvak korter of kleiner wordt, verkleint PowerPoint het tekstvak – verlaagt de hoogte – 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.

Aspose.Slides for Python via Java biedt soortgelijke opties – enkele eigenschappen onder de TextFrameFormat‑klasse – die je in staat stellen het autofit‑gedrag voor tekstvakken in presentaties te regelen.
Resize a Shape to Fit Text
Als je wilt dat de tekst in een vak altijd in dat vak past nadat de tekst gewijzigd is, moet je de optie Resize shape to fit text gebruiken. Om deze instelling te specificeren, gebruik je de setAutofitType‑methode (van de TextFrameFormat‑klasse) met Shape.

Deze Python‑code laat zien hoe je opgeeft dat tekst altijd in zijn vak moet passen in een PowerPoint‑presentatie:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, ShapeType, Portion, FillType, TextAutofitType, SaveFormat
from java.awt import Color
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100)
portion = Portion("lorem ipsum...")
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK)
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
auto_shape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion)
text_frame_format = auto_shape.getTextFrame().getTextFrameFormat()
text_frame_format.setAutofitType(TextAutofitType.Shape)
presentation.save("Output-presentation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Als de tekst langer of groter wordt, wordt het tekstvak automatisch vergroot (hoogte wordt verhoogd) zodat alle tekst erin past. Als de tekst korter wordt, gebeurt het tegenovergestelde.
Do Not Autofit
Als je wilt dat een tekstvak of vorm zijn afmetingen behoudt, ongeacht wijzigingen in de tekst die het bevat, moet je de optie Do not Autofit gebruiken. Om deze instelling te specificeren, gebruik je de setAutofitType‑methode (van de TextFrameFormat‑klasse) met None.

Deze Python‑code laat zien hoe je aangeeft dat een tekstvak altijd zijn afmetingen moet behouden in een PowerPoint‑presentatie:
import jpime
import asposeslides
if not jpype.isJVMStarted():
jpime.startJVM()
from asposeslides.api import Presentation, ShapeType, Portion, FillType, TextAutofitType, SaveFormat
from java.awt import Color
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100)
portion = Portion("lorem ipsum...")
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK)
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
auto_shape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion)
text_frame_format = auto_shape.getTextFrame().getTextFrameFormat()
text_frame_format.setAutofitType(TextAutofitType.None_)
presentation.save("Output-presentation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Wanneer de tekst te lang wordt voor het vak, loopt deze over.
Shrink Text on Overflow
Als de tekst te lang wordt voor het vak, kun je de optie Shrink text on overflow gebruiken om op te geven dat de grootte en de spatiëring van de tekst moeten worden verkleind zodat deze in het vak past. Om deze instelling te specificeren, gebruik je de setAutofitType‑methode (van de TextFrameFormat‑klasse) met Normal.

Deze Python‑code laat zien hoe je aangeeft dat tekst moet worden verkleind bij overflow in een PowerPoint‑presentatie:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, ShapeType, Portion, FillType, TextAutofitType, SaveFormat
from java.awt import Color
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100)
portion = Portion("lorem ipsum...")
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK)
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
auto_shape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion)
text_frame_format = auto_shape.getTextFrame().getTextFrameFormat()
text_frame_format.setAutofitType(TextAutofitType.Normal)
presentation.save("Output-presentation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Opmerking
Wanneer de optie Shrink text on overflow wordt gebruikt, wordt de instelling alleen toegepast wanneer de tekst te lang wordt voor het vak.Wrap Text
Als je wilt dat de tekst in een vorm zich omslaat binnen die vorm wanneer de tekst de rand van de vorm overschrijdt (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) gebruiken met NullableBool.True_.
Deze Python‑code laat zien hoe je de Wrap Text‑instelling gebruikt in een PowerPoint‑presentatie:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation, ShapeType, Portion, FillType, NullableBool, SaveFormat
from java.awt import Color
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
auto_shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100)
portion = Portion("lorem ipsum...")
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK)
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
auto_shape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion)
text_frame_format = auto_shape.getTextFrame().getTextFrameFormat()
text_frame_format.setWrapText(NullableBool.True_)
presentation.save("Output-presentation.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Waarschuwing
Als je de setWrapText‑methode gebruikt met NullableBool.False voor een vorm, zal de tekst bij een langere inhoud dan de breedte van de vorm zich uitstrekken buiten de vormranden op één enkele regel.FAQ
Beïnvloeden de interne marges van het tekstframe AutoFit?
Ja. Padding (interne marges) verkleint het bruikbare gebied voor tekst, waardoor AutoFit eerder wordt geactiveerd – de lettergrootte wordt verkleind of de vorm eerder herschaald. 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 hieromheen aan. Het verwijderen van onnodige regeleinden vermindert vaak hoe agressief AutoFit de tekst moet verkleinen.
Heeft het wijzigen van het thema‑lettertype of het triggeren van lettersubstitutie invloed op het AutoFit‑resultaat?
Ja. Het vervangen van een lettertype door een ander met andere glyf‑metingen verandert de breedte/hoogte van de tekst, wat de uiteindelijke lettergrootte en regeleinde‑omslag kan veranderen. Na elke wijziging of substitutie van een lettertype, controleer de dia’s opnieuw.