Ulepsz swoje prezentacje za pomocą AutoFit w Pythonie

Wprowadzenie

Domyślnie, gdy dodajesz pole tekstowe, Microsoft PowerPoint używa ustawienia Resize shape to fix text dla pola tekstowego — automatycznie zmienia rozmiar pola, aby tekst zawsze w nim się mieścił.

pole tekstowe w PowerPoint

  • Gdy tekst w polu tekstowym staje się dłuższy lub większy, PowerPoint automatycznie powiększa pole tekstowe — zwiększa jego wysokość — aby pomieścić więcej tekstu.
  • Gdy tekst w polu tekstowym staje się krótszy lub mniejszy, PowerPoint automatycznie zmniejsza pole tekstowe — zmniejsza jego wysokość — aby usunąć zbędną przestrzeń.

W PowerPoint istnieją 4 ważne parametry lub opcje kontrolujące zachowanie autofit dla pola tekstowego:

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

opcje autofit w PowerPoint

Aspose.Slides for Python via .NET udostępnia podobne opcje — niektóre właściwości w klasie TextFrameFormat — które pozwalają kontrolować zachowanie autofit dla pól tekstowych w prezentacjach.

Zmiana rozmiaru kształtów, aby dopasować tekst

Jeśli chcesz, aby tekst w ramce zawsze mieścił się w tej ramce po wprowadzeniu zmian w tekście, musisz użyć opcji Resize shape to fix text. Aby określić to ustawienie, ustaw właściwość autofit_type klasy TextFrameFormat na SHAPE.

ustawienie zawsze dopasowane w PowerPoint

Ten kod w Pythonie pokazuje, jak określić, że tekst musi zawsze mieścić się w swojej ramce w prezentacji PowerPoint:

import aspose.slides as slides
import aspose.pydrawing as draw

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    auto_shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 30, 30, 350, 100)

    portion = slides.Portion("lorem ipsum...")
    portion.portion_format.fill_format.solid_fill_color.color = draw.Color.black
    portion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    auto_shape.text_frame.paragraphs[0].portions.add(portion)

    text_frame_format = auto_shape.text_frame.text_frame_format
    text_frame_format.autofit_type = slides.TextAutofitType.SHAPE

    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

Jeśli tekst stanie się dłuższy lub większy, pole tekstowe zostanie automatycznie zmienione rozmiarem (zwiększenie wysokości), aby zapewnić, że cały tekst w nim zmieści się. Jeśli tekst stanie się krótszy, zachodzi odwrotna sytuacja.

Nie dopasowuj automatycznie

Jeśli chcesz, aby pole tekstowe lub kształt zachowały swoje wymiary niezależnie od zmian w tekście, który zawierają, musisz użyć opcji Do not Autofit. Aby określić to ustawienie, ustaw właściwość autofit_type klasy TextFrameFormat na NONE.

ustawienie nie dopasowuj automatycznie w PowerPoint

Ten kod w Pythonie pokazuje, jak określić, że pole tekstowe musi zawsze zachowywać swoje wymiary w prezentacji PowerPoint:

import aspose.slides as slides
import aspose.pydrawing as draw

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    auto_shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 30, 30, 350, 100)

    portion = slides.Portion("lorem ipsum...")
    portion.portion_format.fill_format.solid_fill_color.color = draw.Color.black
    portion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    auto_shape.text_frame.paragraphs[0].portions.add(portion)

    text_frame_format = auto_shape.text_frame.text_frame_format
    text_frame_format.autofit_type = slides.TextAutofitType.NONE

    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

Gdy tekst stanie się zbyt długi dla swojej ramki, wycieka poza nią.

Zmniejsz tekst przy przepełnieniu

Jeśli tekst stanie się zbyt długi dla swojej ramki, za pomocą opcji Shrink text on overflow możesz określić, że rozmiar i odstępy tekstu mają być zmniejszone, aby zmieścił się w ramce. Aby określić to ustawienie, ustaw właściwość autofit_type klasy TextFrameFormat na NORMAL.

ustawienie zmniejsz tekst przy przepełnieniu w PowerPoint

Ten kod w Pythonie pokazuje, jak określić, że tekst ma być zmniejszany przy przepełnieniu w prezentacji PowerPoint:

import aspose.slides as slides
import aspose.pydrawing as draw

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    auto_shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 30, 30, 350, 100)

    portion = slides.Portion("lorem ipsum...")
    portion.portion_format.fill_format.solid_fill_color.color = draw.Color.black
    portion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    auto_shape.text_frame.paragraphs[0].portions.add(portion)

    text_frame_format = auto_shape.text_frame.text_frame_format
    text_frame_format.autofit_type = slides.TextAutofitType.NORMAL

    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

Zawijanie tekstu

Jeśli chcesz, aby tekst w kształcie był zawijany wewnątrz tego kształtu, gdy tekst wykracza poza jego granicę (tylko szerokość), musisz użyć parametru Wrap text in shape. Aby określić to ustawienie, ustaw właściwość wrap_text klasy TextFrameFormat na NullableBool.TRUE.

Ten kod w Pythonie pokazuje, jak używać ustawienia Wrap Text w prezentacji PowerPoint:

import aspose.slides as slides
import aspose.pydrawing as draw

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    auto_shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 30, 30, 350, 100)

    portion = slides.Portion("lorem ipsum...")
    portion.portion_format.fill_format.solid_fill_color.color = draw.Color.black
    portion.portion_format.fill_format.fill_type = slides.FillType.SOLID
    auto_shape.text_frame.paragraphs[0].portions.add(portion)

    text_frame_format = auto_shape.text_frame.text_frame_format
    text_frame_format.autofit_type = slides.TextAutofitType.NONE
    text_frame_format.wrap_text = slides.NullableBool.TRUE

    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

FAQ

Czy wewnętrzne marginesy ramki tekstowej wpływają na AutoFit?

Tak. Padding (wewnętrzne marginesy) zmniejsza dostępną powierzchnię dla tekstu, więc AutoFit zostanie uruchomiony wcześniej — zmniejszając czcionkę lub zmieniając rozmiar kształtu szybciej. Sprawdź i dostosuj marginesy przed regulacją AutoFit.

Jak AutoFit współdziała z ręcznymi i miękkimi podziałami linii?

Wymuszone podziały pozostają na miejscu, a AutoFit dostosowuje rozmiar czcionki i odstępy wokół nich. Usunięcie niepotrzebnych podziałów często zmniejsza agresywność AutoFit w zwężaniu tekstu.

Czy zmiana czcionki tematu lub wywołanie podstawienia czcionki wpływa na wyniki AutoFit?

Tak. Zastąpienie czcionki czcionką o innych metrykach glifów zmienia szerokość/wysokość tekstu, co może wpłynąć na ostateczny rozmiar czcionki i zawijanie linii. Po każdej zmianie lub podstawieniu czcionki, ponownie sprawdź slajdy.