Vylepšete své prezentace pomocí AutoFit v JavaScriptu
Úvod
Ve výchozím nastavení, když přidáte textové pole, Microsoft PowerPoint používá nastavení Resize shape to fix text pro textové pole — automaticky mění velikost textového pole, aby se jeho text vždy vešel.

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

Aspose.Slides pro Node.js přes Java poskytuje podobné možnosti — některé vlastnosti ve třídě TextFrameFormat, které vám umožní řídit chování automatického přizpůsobení pro textová pole v prezentacích.
Resize Shape to Fit Text
Pokud chcete, aby text v poli vždy zapadal do tohoto pole po provedení změn, musíte použít možnost Resize shape to fix text. Pro nastavení tohoto chování zavolejte metodu setAutofitType ze třídy TextFrameFormat s hodnotou Shape.

Tento JavaScriptový kód ukazuje, jak určit, že text se vždy musí vejít do svého pole v prezentaci 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();
}
}
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 zachoval své rozměry bez ohledu na změny textu, musíte použít možnost Do not Autofit. Pro nastavení tohoto chování zavolejte metodu setAutofitType ze třídy TextFrameFormat s hodnotou None.

Tento JavaScriptový kód ukazuje, jak určit, že textové pole musí vždy zachovat své rozměry v prezentaci 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();
}
}
Když se text stane příliš dlouhým pro své pole, přeteč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 se zmenší, aby se vešel do pole. Pro nastavení tohoto chování zavolejte metodu setAutofitType ze třídy TextFrameFormat s hodnotou Normal.

Tento JavaScriptový kód ukazuje, jak určit, že text se má při přetečení zmenšit v prezentaci 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();
}
}
Info
Když je použita možnost Shrink text on overflow, nastavení se použije pouze v případě, že text přesáhne rozměry pole.Wrap Text
Pokud chcete, aby se text v tvaru zalomil uvnitř tvaru, když přesáhne jeho šířku, musíte použít parametr Wrap text in shape. Pro nastavení tohoto chování zavolejte metodu setWrapText ze třídy TextFrameFormat s hodnotou true.
Tento JavaScriptový kód ukazuje, jak použít nastavení Wrap Text v prezentaci 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();
}
}
Note
Pokud zavoláte metodusetWrapText s hodnotou False pro tvar, když text uvnitř tvaru přesáhne jeho šířku, text se rozšíří mimo hranice tvaru v jedné řadě.
FAQ
Ovlivňují vnitřní okraje textového rámečku AutoFit?
Ano. Výplň (vnitřní okraje) snižuje použitelnou oblast pro text, takže AutoFit se aktivuje dříve — zmenší písmo nebo změní velikost tvaru dříve. Zkontrolujte a upravte okraje před laděním AutoFit.
Jak AutoFit spolupracuje s ručními a měkkými zalomeními řádků?
Vynucená zalomení zůstávají na místě a AutoFit přizpůsobuje velikost písma a mezery okolo nich. Odstranění zbytečných zalomení často snižuje agresivitu, s jakou AutoFit musí text zmenšovat.
Ovlivňuje změna písma motivu nebo nahrazení písma výsledky AutoFit?
Ano. Nahrazení písma fontem s odlišnými metrikami změní šířku/výšku textu, což může změnit finální velikost písma a zalomení řádků. Po jakékoli změně nebo nahrazení písma znovu zkontrolujte snímky.