Zlepšete své prezentace pomocí AutoFit na Androidu
Úvod
Ve výchozím nastavení, když přidáte textové pole, Microsoft PowerPoint používá pro textové pole nastavení Resize shape to fix text – automaticky mění velikost textového pole, aby jeho text vždy do něj pasoval.

- Když text v textovém poli se prodlouží nebo zvětší, PowerPoint automaticky zvětší textové pole — zvýší jeho výšku — aby pojmul více textu.
- Když text v textovém poli se zkrátí nebo zmenší, PowerPoint automaticky zmenší textové pole — sníží jeho výšku — aby odstranil přebytečný prostor.
V PowerPointu jsou to 4 důležité parametry nebo možnosti, které řídí chování autofit pro textové pole:
- Do not Autofit
- Shrink text on overflow
- Resize shape to fit text
- Wrap text in shape.

Aspose.Slides for Android via Java poskytuje podobné možnosti — některé vlastnosti ve třídě TextFrameFormat — které vám umožní řídit chování autofitu pro textová pole v prezentacích.
Změna velikosti tvaru tak, aby text odpovídal
Pokud chcete, aby text v rámečku vždy po úpravách textu do něj pasoval, musíte použít možnost Resize shape to fix text. Pro nastavení této volby nastavte vlastnost AutofitType (třídy TextFrameFormat) na hodnotu Shape.

Tento kód v jazyce Java vám ukazuje, jak určit, že text musí vždy pasovat do svého rámečku v prezentaci 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();
}
Pokud se text prodlouží nebo zvětší, textové pole bude automaticky změněno (zvýší se výška), aby se do něj vešel celý text. Pokud se text zkrátí, nastane opačný efekt.
Do Not Autofit
Pokud chcete, aby textové pole nebo tvar zachovalo své rozměry bez ohledu na změny textu, který obsahuje, musíte použít možnost Do not Autofit. Pro nastavení této volby nastavte vlastnost AutofitType (třídy TextFrameFormat) na None.

Tento kód v jazyce Java vám ukazuje, jak určit, že textové pole musí v prezentaci PowerPoint vždy zachovat své rozměry:
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();
}
Když se text stane příliš dlouhým pro své pole, vyteče ven.
Shrink Text on Overflow
Pokud se text stane příliš dlouhým pro své pole, pomocí možnosti Shrink text on overflow můžete určit, že velikost a mezery textu musí být zmenšeny, aby se vešel do pole. Pro nastavení této volby nastavte vlastnost AutofitType (třídy TextFrameFormat) na Normal.

Tento kód v jazyce Java vám ukazuje, jak určit, že text má být v případě přeplnění zmenšen v prezentaci 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();
}
Info
Když je použita možnost Shrink text on overflow, nastavení se použije pouze tehdy, když se text stane příliš dlouhým pro své pole.Wrap Text
Pokud chcete, aby se text v tvaru zalamoval uvnitř tohoto tvaru, když text přesáhne okraj tvaru (pouze šířka), musíte použít parametr Wrap text in shape. Pro nastavení této volby musíte nastavit vlastnost WrapText (třídy TextFrameFormat) na 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();
}
Note
Pokud pro tvar nastavíte vlastnostWrapText na False, když text uvnitř tvaru přesáhne šířku tvaru, text se rozšíří za hranice tvaru v jedné řádce.
Často kladené otázky
Ovlivňují vnitřní okraje textového rámce AutoFit?
Ano. Odsazení (vnitřní okraje) snižuje použitelné místo pro text, takže AutoFit se spustí dříve — zmenší písmo nebo dříve změní velikost tvaru. Před laděním AutoFitu zkontrolujte a upravte okraje.
Jak AutoFit spolupracuje s ručními a měkkými konci řádků?
Vynucené zalomení zůstávají na svém místě a AutoFit upravuje velikost písma a mezery kolem nich. Odstranění zbytečných zalomení často snižuje agresivitu, s jakou AutoFit musí text zmenšovat.
Mění změna fontu motivu nebo vyvolání náhrady písma výsledky AutoFitu?
Ano. Náhrada za font s odlišnými metrikami glyfů mění šířku/výšku textu, což může změnit finální velikost písma a zalomení řádků. Po každé změně fontu nebo jeho náhradě znovu zkontrolujte snímky.