Управление настройками автоматической подгонки

По умолчанию, когда вы добавляете текстовое поле, Microsoft PowerPoint использует настройку Изменить размер фигуры, чтобы исправить текст для текстового поля — оно автоматически изменяет размер текстового поля, чтобы текст всегда помещался в него.

textbox-in-powerpoint

  • Когда текст в текстовом поле становится длиннее или больше, PowerPoint автоматически увеличивает текстовое поле — увеличивает его высоту — чтобы оно могло содержать больше текста.
  • Когда текст в текстовом поле становится короче или меньше, PowerPoint автоматически уменьшает текстовое поле — уменьшает его высоту — чтобы очистить избыточное пространство.

В PowerPoint есть 4 важных параметра или опции, которые контролируют поведение автоматической подгонки для текстового поля:

  • Не изменять размер
  • Уменьшить текст при переполнении
  • Изменить размер фигуры, чтобы соответствовать тексту
  • Перенос текста в фигуре.

autofit-options-powerpoint

Aspose.Slides для .NET предлагает аналогичные параметры — некоторые свойства класса TextFrameFormat — которые позволяют вам контролировать поведение автоматической подгонки для текстовых полей в презентациях.

Изменить размер фигуры, чтобы соответствовать тексту

Если вы хотите, чтобы текст в рамке всегда помещался в эту рамку после внесения изменений в текст, вы должны использовать опцию Изменить размер фигуры, чтобы исправить текст. Чтобы задать эту настройку, установите свойство AutofitType (из класса TextFrameFormat) в значение Shape.

alwaysfit-setting-powerpoint

Этот код на C# показывает, как задать, чтобы текст всегда помещался в свою рамку в презентации PowerPoint:

 using (Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides[0];
    IAutoShape autoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    portion.PortionFormat.FillFormat.FillType = FillType.Solid;
    autoShape.TextFrame.Paragraphs[0].Portions.Add(portion);

    ITextFrameFormat textFrameFormat = autoShape.TextFrame.TextFrameFormat;
    textFrameFormat.AutofitType = TextAutofitType.Shape;

    pres.Save("Output-presentation.pptx", SaveFormat.Pptx);
}

Если текст становится длиннее или больше, текстовое поле автоматически изменяет свои размеры (высота увеличивается), чтобы весь текст помещался в него. Если текст становится короче, происходит обратное.

Не изменять размер

Если вы хотите, чтобы текстовое поле или фигура сохраняли свои размеры независимо от внесенных изменений в содержащийся текст, вы должны использовать опцию Не изменять размер. Чтобы задать эту настройку, установите свойство AutofitType (из класса TextFrameFormat) в значение None.

donotautofit-setting-powerpoint

Этот код на C# показывает, как указать, чтобы текстовое поле всегда сохраняло свои размеры в презентации PowerPoint:

using (Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides[0];
    IAutoShape autoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    portion.PortionFormat.FillFormat.FillType = FillType.Solid;
    autoShape.TextFrame.Paragraphs[0].Portions.Add(portion);

    ITextFrameFormat textFrameFormat = autoShape.TextFrame.TextFrameFormat;
    textFrameFormat.AutofitType = TextAutofitType.None;

    pres.Save("Output-presentation.pptx", SaveFormat.Pptx);
}

Когда текст становится слишком длинным для своей рамки, он выходит за пределы.

Уменьшить текст при переполнении

Если текст становится слишком длинным для своей рамки, с помощью опции Уменьшить текст при переполнении вы можете указать, что размер и расстояние текста должны быть уменьшены, чтобы текст помещался в свою рамку. Чтобы задать эту настройку, установите свойство AutofitType (из класса TextFrameFormat) в значение Normal.

shrinktextonoverflow-setting-powerpoint

Этот код на C# показывает, как указать, что текст должен уменьшаться при переполнении в презентации PowerPoint:

using (Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides[0];
    IAutoShape autoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    portion.PortionFormat.FillFormat.FillType = FillType.Solid;
    autoShape.TextFrame.Paragraphs[0].Portions.Add(portion);

    ITextFrameFormat textFrameFormat = autoShape.TextFrame.TextFrameFormat;
    textFrameFormat.AutofitType = TextAutofitType.Normal;

    pres.Save("Output-presentation.pptx", SaveFormat.Pptx);
}

Перенос текста

Если вы хотите, чтобы текст в фигуре переносился внутри этой фигуры, когда текст превышает границы фигуры (только ширина), вы должны использовать параметр Перенос текста в фигуре. Чтобы задать эту настройку, вам нужно установить свойство WrapText (из класса TextFrameFormat) в значение true.

Этот код на C# показывает, как использовать настройку Перенос текста в презентации PowerPoint:

using (Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides[0];
    IAutoShape autoShape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);

    Portion portion = new Portion("lorem ipsum...");
    portion.PortionFormat.FillFormat.SolidFillColor.Color = Color.Black;
    portion.PortionFormat.FillFormat.FillType = FillType.Solid;
    autoShape.TextFrame.Paragraphs[0].Portions.Add(portion);

    ITextFrameFormat textFrameFormat = autoShape.TextFrame.TextFrameFormat;
    textFrameFormat.WrapText = NullableBool.True;

    pres.Save("Output-presentation.pptx", SaveFormat.Pptx);
}