Administrar la Configuración de Autofit

Por defecto, cuando agregas una caja de texto, Microsoft PowerPoint utiliza la configuración de Cambiar el tamaño de la forma para ajustar el texto para la caja de texto; redimensiona automáticamente la caja de texto para asegurarse de que su texto siempre se ajuste a ella.

textbox-in-powerpoint

  • Cuando el texto en la caja de texto se vuelve más largo o grande, PowerPoint automáticamente agranda la caja de texto—incrementa su altura—para permitir que contenga más texto.
  • Cuando el texto en la caja de texto se vuelve más corto o pequeño, PowerPoint reduce automáticamente la caja de texto—disminuye su altura—para liberar espacio redundante.

En PowerPoint, estos son los 4 parámetros u opciones importantes que controlan el comportamiento de autofit para una caja de texto:

  • No ajustar automáticamente
  • Reducir texto en desbordamiento
  • Cambiar el tamaño de la forma para ajustar el texto
  • Ajustar texto en la forma.

autofit-options-powerpoint

Aspose.Slides para Python a través de .NET proporciona opciones similares—algunas propiedades bajo la clase text_frame_format—que te permiten controlar el comportamiento de autofit para las cajas de texto en presentaciones.

Cambiar el Tamaño de la Forma para Ajustar el Texto

Si deseas que el texto en una caja se ajuste siempre dentro de esa caja después de que se realicen cambios en el texto, debes utilizar la opción Cambiar el tamaño de la forma para ajustar el texto. Para especificar esta configuración, establece la propiedad autofit_type (de la clase text_frame_format) en SHAPE.

alwaysfit-setting-powerpoint

Este código Python te muestra cómo especificar que un texto debe ajustarse siempre dentro de su caja en una presentación de PowerPoint:

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

with slides.Presentation() as pres:
    slide = pres.slides[0]
    autoShape = 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
    autoShape.text_frame.paragraphs[0].portions.add(portion)

    textFrameFormat = autoShape.text_frame.text_frame_format
    textFrameFormat.autofit_type = slides.TextAutofitType.SHAPE

    pres.save("Output-presentation.pptx", slides.export.SaveFormat.PPTX)

Si el texto se vuelve más largo o grande, la caja de texto se redimensionará automáticamente (aumento en altura) para asegurar que todo el texto se ajuste a ella. Si el texto se vuelve más corto, ocurre lo contrario.

No Ajustar Automáticamente

Si deseas que una caja de texto o forma mantenga sus dimensiones sin importar los cambios realizados en el texto que contiene, debes utilizar la opción No ajustar automáticamente. Para especificar esta configuración, establece la propiedad autofit_type (de la clase text_frame_format) en NONE.

donotautofit-setting-powerpoint

Este código Python te muestra cómo especificar que una caja de texto debe mantener siempre sus dimensiones en una presentación de PowerPoint:

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

with slides.Presentation() as pres:
    slide = pres.slides[0]
    autoShape = 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
    autoShape.text_frame.paragraphs[0].portions.add(portion)

    textFrameFormat = autoShape.text_frame.text_frame_format
    textFrameFormat.autofit_type = slides.TextAutofitType.NONE

    pres.save("Output-presentation.pptx", slides.export.SaveFormat.PPTX)

Cuando el texto se vuelve demasiado largo para su caja, se desborda.

Reducir Texto en Desbordamiento

Si un texto se vuelve demasiado largo para su caja, a través de la opción Reducir texto en desbordamiento, puedes especificar que el tamaño y el espaciado del texto deben reducirse para que quepa en su caja. Para especificar esta configuración, establece la propiedad autofit_type (de la clase text_frame_format) en NORMAL.

shrinktextonoverflow-setting-powerpoint

Este código Python te muestra cómo especificar que un texto debe reducirse en desbordamiento en una presentación de PowerPoint:

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

with slides.Presentation() as pres:
    slide = pres.slides[0]
    autoShape = 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
    autoShape.text_frame.paragraphs[0].portions.add(portion)

    textFrameFormat = autoShape.text_frame.text_frame_format
    textFrameFormat.autofit_type = slides.TextAutofitType.NORMAL

    pres.save("Output-presentation.pptx", slides.export.SaveFormat.PPTX)

Ajustar Texto

Si deseas que el texto en una forma se ajuste dentro de esa forma cuando el texto exceda el borde de la forma (solo ancho), debes usar el parámetro Ajustar texto en la forma. Para especificar esta configuración, debes establecer la propiedad wrap_text (de la clase TextFrameFormat) en 1.

Este código Python te muestra cómo usar la configuración Ajustar Texto en una presentación de PowerPoint:

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

with slides.Presentation() as pres:
    slide = pres.slides[0]
    autoShape = 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
    autoShape.text_frame.paragraphs[0].portions.add(portion)

    textFrameFormat = autoShape.text_frame.text_frame_format
    textFrameFormat.autofit_type = slides.TextAutofitType.NONE
    textFrameFormat.wrap_text = 1

    pres.save("Output-presentation.pptx", slides.export.SaveFormat.PPTX)