Fejlessze előadásait az AutoFit használatával JavaScriptben

Introduction

Alapértelmezés szerint, amikor szövegdobozt ad hozzá, a Microsoft PowerPoint a Resize shape to fix text beállítást használja a szövegdobozhoz – automatikusan átméretezi a szövegdobozt, hogy a szöveg mindig beleférjen.

textbox-in-powerpoint

  • Amikor a szövegdoboz szövege hosszabbá vagy nagyobbra nő, a PowerPoint automatikusan megnöveli a szövegdobozt – növeli a magasságát – hogy több szöveget is el tudjon fogadni.
  • Amikor a szövegdoboz szövege rövidebbé vagy kisebbé válik, a PowerPoint automatikusan csökkenti a szövegdobozt – csökkenti a magasságát – hogy felszabadítson felesleges helyet.

A PowerPointban ezek a 4 fontos paraméter vagy beállítás, amely a szövegdoboz automatikus illesztésének viselkedését szabályozza:

  • Do not Autofit
  • Shrink text on overflow
  • Resize shape to fit text
  • Wrap text in shape.

autofit-options-powerpoint

Az Aspose.Slides for Node.js via Java has similar options — néhány tulajdonság a TextFrameFormat osztályban — amelyek lehetővé teszik a szövegdobozok automatikus illesztésének viselkedésének szabályozását a prezentációkban.

Resize Shape to Fit Text

Ha azt szeretné, hogy a dobozban lévő szöveg mindig beleférjen a dobozba a szöveg módosítása után, a Resize shape to fix text beállítást kell használnia. Ennek megadásához hívja meg a setAutofitType metódust a TextFrameFormat osztályból a Shape értékkel.

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

Ha a szöveg hosszabbá vagy nagyobbra válik, a szövegdobozt automatikusan átméretezi (magasságát növeli), hogy az összes szöveg beleférjen. Ha a szöveg rövidebb lesz, a fordított történik.

Do Not Autofit

Ha azt szeretné, hogy egy szövegdoboz vagy alakzat megtartsa méreteit függetlenül a benne lévő szöveg módosulásától, a Do not Autofit beállítást kell használnia. Ennek megadásához hívja meg a setAutofitType metódust a TextFrameFormat osztályból a None értékkel.

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

Ha a szöveg túl hosszú lesz a dobozhoz képest, kifolyik.

Shrink Text on Overflow

Ha egy szöveg túl hosszúra nő a dobozhoz képest, a Shrink text on overflow opcióval megadhatja, hogy a szöveg méretét és távolságait csökkenteni kell, hogy beleférjen a dobozba. Ennek megadásához hívja meg a setAutofitType metódust a TextFrameFormat osztályból a Normal értékkel.

shrinktextonoverflow-setting-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

Ha azt szeretné, hogy a alakzatban lévő szöveg megtörjön az alakzat szélessége mentén, amikor a szöveg túllépi az alakzat szélét (csak a szélesség), a Wrap text in shape paramétert kell használnia. Ennek megadásához a setWrapText metódust kell meghívnia a TextFrameFormat osztályból a true értékkel.

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

GYIK

A szövegkeret belső margói befolyásolják az AutoFit-et?

Igen. A kitöltés (belső margók) csökkentik a szöveghez rendelkezésre álló területet, ezért az AutoFit korábban lép életbe — a betűméretet vagy az alakzat méretét hamarabb csökkenti. Ellenőrizze és állítsa be a margókat, mielőtt finomhangolná az AutoFit-et.

Hogyan működik az AutoFit a kézi és lágy sortörésekkel?

A kényszerített sortörések megmaradnak, és az AutoFit a körülöttük lévő betűméretet és távolságot igazítja. A felesleges sortörések eltávolítása gyakran csökkenti, hogy az AutoFit mennyire kell agresszíven összezsugorítja a szöveget.

A téma betűtípusának módosítása vagy a betűtípus‑helyettesítés aktiválása befolyásolja az AutoFit eredményeit?

Igen. Ha egy olyan betűtípusra helyettesít, amelynek más glyfméretei vannak, a szöveg szélessége/magassága megváltozik, ami módosíthatja a végső betűméretet és a sortörést. Minden betűtípus‑változtatás vagy helyettesítés után ellenőrizze újra a diákat.