Управление настройками автоматической подгонки
По умолчанию, когда вы добавляете текстовое поле, Microsoft PowerPoint использует настройку Изменить размер фигуры для соответствия тексту для текстового поля — оно автоматически изменяет размер текстового поля, чтобы текст всегда помещался в него.
- Когда текст в текстовом поле становится длиннее или больше, PowerPoint автоматически увеличивает текстовое поле — увеличивает его высоту — чтобы вместить больше текста.
- Когда текст в текстовом поле становится короче или меньше, PowerPoint автоматически уменьшает текстовое поле — уменьшает его высоту — для удаления избыточного пространства.
В PowerPoint есть 4 важных параметра или опции, которые контролируют поведение автоподгонки для текстового поля:
- Не автоподгонять
- Уменьшить текст при переполнении
- Изменить размер фигуры для соответствия тексту
- Перенос текста в фигуре.
Aspose.Slides для Android через Java предоставляет аналогичные опции — некоторые свойства в классе TextFrameFormat, которые позволяют вам контролировать поведение автоподгонки для текстовых полей в презентациях.
Изменить размер фигуры для соответствия тексту
Если вы хотите, чтобы текст в рамке всегда помещался в эту рамку после внесения изменений в текст, вам необходимо использовать опцию Изменить размер фигуры для соответствия тексту. Чтобы установить эту настройку, установите свойство AutofitType (из класса TextFrameFormat) в значение Shape
.
Этот код на Java показывает, как указать, что текст всегда должен помещаться в свою рамку в презентации PowerPoint:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);
Portion portion = new Portion("lorem ipsum...");
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);
ITextFrameFormat textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
textFrameFormat.setAutofitType(TextAutofitType.Shape);
pres.save("Output-presentation.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Если текст становится длиннее или больше, текстовое поле будет автоматически изменено (увеличение высоты), чтобы гарантировать, что весь текст помещается в него. Если текст становится короче, происходит обратное.
Не автоподгонять
Если вы хотите, чтобы текстовое поле или фигура сохраняли свои размеры, независимо от изменений, вносимых в содержащий их текст, вам необходимо использовать опцию Не автоподгонять. Чтобы установить эту настройку, установите свойство AutofitType (из класса TextFrameFormat) в значение None
.
Этот код на Java показывает, как указать, что текстовое поле должно всегда сохранять свои размеры в презентации PowerPoint:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);
Portion portion = new Portion("lorem ipsum...");
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);
ITextFrameFormat textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
textFrameFormat.setAutofitType(TextAutofitType.None);
pres.save("Output-presentation.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Когда текст становится слишком длинным для своей рамки, он выходит за её пределы.
Уменьшить текст при переполнении
Если текст становится слишком длинным для своей рамки, с помощью опции Уменьшить текст при переполнении вы можете указать, что размер и расстояние текста должны быть уменьшены, чтобы текст поместился в рамку. Чтобы установить эту настройку, установите свойство AutofitType (из класса TextFrameFormat) в значение Normal
.
Этот код на Java показывает, как указать, что текст должен быть уменьшен при переполнении в презентации PowerPoint:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);
Portion portion = new Portion("lorem ipsum...");
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);
ITextFrameFormat textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
textFrameFormat.setAutofitType(TextAutofitType.Normal);
pres.save("Output-presentation.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Информация
Когда используется опция Уменьшить текст при переполнении, настройка применяется только в том случае, если текст становится слишком длинным для своей рамки.Перенос текста
Если вы хотите, чтобы текст в фигуре оборачивался внутри этой фигуры, когда текст выходит за пределы границ фигуры (только по ширине), вам необходимо использовать параметр Перенос текста в фигуре. Чтобы установить эту настройку, вам необходимо установить свойство WrapText (из класса TextFrameFormat) в значение true
.
Этот код на Java показывает, как использовать настройку переноса текста в презентации PowerPoint:
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IAutoShape autoShape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 30, 30, 350, 100);
Portion portion = new Portion("lorem ipsum...");
portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLACK);
portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid);
autoShape.getTextFrame().getParagraphs().get_Item(0).getPortions().add(portion);
ITextFrameFormat textFrameFormat = autoShape.getTextFrame().getTextFrameFormat();
textFrameFormat.setWrapText(NullableBool.True);
pres.save("Output-presentation.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Примечание
Если вы установите свойствоWrapText
в значение False
для фигуры, когда текст внутри фигуры становится длиннее ширины фигуры, текст выходит за пределы границ фигуры в одну линию.