Форматирование фигур PowerPoint в JavaScript
Введение
В PowerPoint вы можете добавлять фигуры на слайды. Поскольку фигуры состоят из линий, их можно форматировать, изменяя или применяя эффекты к контуру. Кроме того, вы можете форматировать фигуры, задавая параметры, которые контролируют заполнение их внутренней части.

Aspose.Slides for Node.js via Java предоставляет классы и методы, позволяющие форматировать фигуры с использованием тех же параметров, что доступны в PowerPoint.
Форматирование линий
С помощью Aspose.Slides вы можете указать пользовательский стиль линии для фигуры. Ниже приведена последовательность действий:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Установите стиль линии фигуры.
- Установите ширину линии.
- Установите тип штриха линии.
- Установите цвет линии для фигуры.
- Сохраните изменённую презентацию в файл PPTX.
Следующий код демонстрирует, как отформатировать прямоугольник AutoShape:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let slide = presentation.getSlides().get_Item(0);
// Добавьте автоматическую фигуру типа Rectangle.
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 150, 150, 75);
// Удалите заливку из прямоугольной фигуры.
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
// Примените форматирование к линиям прямоугольника.
shape.getLineFormat().setStyle(java.newByte(aspose.slides.LineStyle.ThickThin));
shape.getLineFormat().setWidth(7);
shape.getLineFormat().setDashStyle(java.newByte(aspose.slides.LineDashStyle.Dash));
// Установите цвет линии прямоугольника.
shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
// Сохраните файл PPTX на диск.
presentation.save("formatted_lines.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Применение эффектов эскиза к линиям фигур
Эффект эскиза делает линию фигуры выглядящей как нарисованную от руки. Используйте Shape.getLineFormat для доступа к параметрам линии, LineFormat.getSketchFormat для доступа к параметрам эскиза и SketchFormat.setSketchType для выбора значения из перечисления LineSketchType.
Следующий JavaScript‑код показывает, как применить эффект LineSketchType.Curved, прочитать явно назначенное значение и удалить эффект с помощью LineSketchType.None:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100);
// Получить формат линии фигуры и её формат эскиза.
let sketchFormat = shape.getLineFormat().getSketchFormat();
// Применить эффект эскиза.
sketchFormat.setSketchType(aspose.slides.LineSketchType.Curved);
// Прочитать эффект эскиза, назначенный непосредственно фигуре.
let explicitSketchType = sketchFormat.getSketchType();
console.log("Explicit sketch type: " + explicitSketchType);
// Удалить эффект эскиза.
sketchFormat.setSketchType(aspose.slides.LineSketchType.None);
} finally {
presentation.dispose();
}
Значение, возвращаемое SketchFormat.getSketchType, представляет настройку, назначенную непосредственно фигуре. Если форматирование линии может быть унаследовано из темы, мастер‑слайда или шаблона, используйте LineFormat.getEffective, вызовите getSketchFormat у полученного объекта, а затем его метод getSketchType. Эффективное значение отражает фактическое форматирование после разрешения наследования:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
let shape = presentation.getSlides().get_Item(0).getShapes().get_Item(0);
let lineFormat = shape.getLineFormat();
let explicitSketchType = lineFormat.getSketchFormat().getSketchType();
let effectiveLineFormat = lineFormat.getEffective();
let effectiveSketchType = effectiveLineFormat.getSketchFormat().getSketchType();
console.log("Explicit sketch type: " + explicitSketchType);
console.log("Effective sketch type: " + effectiveSketchType);
} finally {
presentation.dispose();
}
Форматирование стилей соединений
Вот три доступных варианта типа соединения:
- Round
- Miter
- Bevel
По умолчанию, когда PowerPoint соединяет две линии под углом (например, в углу фигуры), используется настройка Round. Однако если вы рисуете фигуру с острыми углами, вам может подойти вариант Miter.

Следующий JavaScript‑код демонстрирует, как три прямоугольника (как показано на изображении выше) были созданы с использованием настроек соединения Miter, Bevel и Round:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let slide = presentation.getSlides().get_Item(0);
// Добавьте три автоматические фигуры типа Rectangle.
let shape1 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 20, 20, 150, 75);
let shape2 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 210, 20, 150, 75);
let shape3 = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 20, 135, 150, 75);
// Установите цвет заливки для каждой прямоугольной фигуры.
shape1.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape1.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
shape2.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape2.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
shape3.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape3.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLACK"));
// Установите ширину линии.
shape1.getLineFormat().setWidth(15);
shape2.getLineFormat().setWidth(15);
shape3.getLineFormat().setWidth(15);
// Установите цвет линии для каждого прямоугольника.
shape1.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape1.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
shape2.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape2.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
shape3.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape3.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "BLUE"));
// Установите стиль соединения.
shape1.getLineFormat().setJoinStyle(java.newByte(aspose.slides.LineJoinStyle.Miter));
shape2.getLineFormat().setJoinStyle(java.newByte(aspose.slides.LineJoinStyle.Bevel));
shape3.getLineFormat().setJoinStyle(java.newByte(aspose.slides.LineJoinStyle.Round));
// Добавьте текст к каждому прямоугольнику.
shape1.getTextFrame().setText("Miter Join Style");
shape2.getTextFrame().setText("Bevel Join Style");
shape3.getTextFrame().setText("Round Join Style");
// Сохраните файл PPTX на диск.
presentation.save("join_styles.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Градиентное заполнение
В PowerPoint градиентное заполнение — это параметр форматирования, позволяющий применять к фигуре плавный переход цветов. Например, вы можете задать два и более цветов, где один постепенно переходит в другой.
Как применить градиентное заполнение к фигуре с помощью Aspose.Slides:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Установите у фигуры FillType в значение
Gradient. - Добавьте ваши два предпочтительных цвета с определёнными позициями, используя методы
addколлекции градиентных остановок, предоставляемой классом GradientFormat. - Сохраните изменённую презентацию в файл PPTX.
Следующий JavaScript‑код демонстрирует, как применить градиент к эллипсу:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let slide = presentation.getSlides().get_Item(0);
// Добавьте автоматическую фигуру типа Ellipse.
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Ellipse, 50, 50, 150, 75);
// Примените градиентное форматирование к эллипсу.
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Gradient));
shape.getFillFormat().getGradientFormat().setGradientShape(java.newByte(aspose.slides.GradientShape.Linear));
// Установите направление градиента.
shape.getFillFormat().getGradientFormat().setGradientDirection(aspose.slides.GradientDirection.FromCorner2);
// Добавьте две градиентные остановки.
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor(1.0, aspose.slides.PresetColor.Purple);
shape.getFillFormat().getGradientFormat().getGradientStops().addPresetColor(0, aspose.slides.PresetColor.Red);
// Сохраните файл PPTX на диск.
presentation.save("gradient_fill.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Если градиент выглядит иначе в экспортированном изображении, чем в PowerPoint, см. Choose a Gradient Rendering Style. Можно выбрать стиль визуализации, не изменяя градиент, хранящийся в презентации.
Заполнение узором
В PowerPoint заполнение узором — это параметр, позволяющий применить двухцветный узор — например, точки, полосы, перекрёстные линии или шахматную сетку — к фигуре. Вы можете выбрать собственные цвета для переднего и заднего плана узора.
Aspose.Slides предоставляет более 45 предопределённых стилей узоров, которые можно применить к фигурам для улучшения визуального восприятия презентаций. После выбора предопределённого узора вы всё равно можете указать точные цвета, которые он будет использовать.
Как применить узор к фигуре с помощью Aspose.Slides:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Установите у фигуры FillType в значение
Pattern. - Выберите стиль узора из предопределённых вариантов.
- Установите Background Color узора.
- Установите Foreground Color узора.
- Сохраните изменённую презентацию в файл PPTX.
Следующий JavaScript‑код демонстрирует, как применить узор к прямоугольнику:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let slide = presentation.getSlides().get_Item(0);
// Добавьте автоматическую фигуру типа Rectangle.
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 75);
// Установите тип заливки в Pattern.
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Pattern));
// Установите стиль узора.
shape.getFillFormat().getPatternFormat().setPatternStyle(java.newByte(aspose.slides.PatternStyle.Trellis));
// Установите фон и цвет переднего плана узора.
shape.getFillFormat().getPatternFormat().getBackColor().setColor(java.getStaticFieldValue("java.awt.Color", "LIGHT_GRAY"));
shape.getFillFormat().getPatternFormat().getForeColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW"));
// Сохраните файл PPTX на диск.
presentation.save("pattern_fill.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Заполнение изображением
В PowerPoint заполнение изображением — это параметр, позволяющий вставить изображение внутрь фигуры, effectively using the image as the shape’s background.
Как использовать Aspose.Slides для заполнения фигуры изображением:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Установите у фигуры FillType в значение
Picture. - Установите режим заполнения изображения в
Tile(или любой другой предпочтительный режим). - Создайте объект PPImage из изображения, которое хотите использовать.
- Передайте изображение методу
ISlidesPicture.setImage. - Сохраните изменённую презентацию в файл PPTX.
Предположим, у нас есть файл «lotus.png» со следующим изображением:

Следующий JavaScript‑код демонстрирует, как заполнить фигуру изображением:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let slide = presentation.getSlides().get_Item(0);
// Добавьте автоматическую фигуру типа Rectangle.
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 255, 130);
// Установите тип заливки в Picture.
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));
// Установите режим заполнения изображением.
shape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Tile);
// Загрузите изображение и добавьте его в ресурсы презентации.
let image = aspose.slides.Images.fromFile("lotus.png");
let picture = presentation.getImages().addImage(image);
image.dispose();
// Установите изображение.
shape.getFillFormat().getPictureFillFormat().getPicture().setImage(picture);
// Сохраните файл PPTX на диск.
presentation.save("picture_fill.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Изображение‑тайл как текстура
Если необходимо задать изображение‑тайл в качестве текстуры и настроить поведение тайлинга, вы можете использовать следующие методы класса PictureFillFormat:
- setPictureFillMode: задаёт режим заполнения изображения —
TileилиStretch. - setTileAlignment: определяет выравнивание тайлов внутри фигуры.
- setTileFlip: управляет тем, будет ли тайл отражён горизонтально, вертикально или оба способа.
- setTileOffsetX: задаёт горизонтальное смещение тайла (в пунктах) от начала фигуры.
- setTileOffsetY: задаёт вертикальное смещение тайла (в пунктах) от начала фигуры.
- setTileScaleX: определяет горизонтальный масштаб тайла в процентах.
- setTileScaleY: определяет вертикальный масштаб тайла в процентах.
Следующий пример кода показывает, как добавить прямоугольник с тайловым заполнением изображения и настроить параметры тайла:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let firstSlide = presentation.getSlides().get_Item(0);
// Добавьте автоматическую фигуру прямоугольника.
let shape = firstSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 190, 95);
// Установите тип заливки фигуры в Picture.
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));
// Загрузите изображение и добавьте его в ресурсы презентации.
let sourceImage = aspose.slides.Images.fromFile("lotus.png");
let presentationImage = presentation.getImages().addImage(sourceImage);
sourceImage.dispose();
// Назначьте изображение фигуре.
let pictureFillFormat = shape.getFillFormat().getPictureFillFormat();
pictureFillFormat.getPicture().setImage(presentationImage);
// Настройте режим заполнения изображением и свойства тайлинга.
pictureFillFormat.setPictureFillMode(aspose.slides.PictureFillMode.Tile);
pictureFillFormat.setTileOffsetX(-32);
pictureFillFormat.setTileOffsetY(-32);
pictureFillFormat.setTileScaleX(50);
pictureFillFormat.setTileScaleY(50);
pictureFillFormat.setTileAlignment(java.newByte(aspose.slides.RectangleAlignment.BottomRight));
pictureFillFormat.setTileFlip(aspose.slides.TileFlip.FlipBoth);
// Сохраните файл PPTX на диск.
presentation.save("tile.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Заполнение сплошным цветом
В PowerPoint заполнение сплошным цветом — это параметр, который заполняет фигуру единым, одинаковым цветом. Этот простой фон применяется без градиентов, текстур или узоров.
Чтобы применить сплошное заполнение к фигуре с помощью Aspose.Slides, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Установите у фигуры FillType в значение
Solid. - Присвойте фигуре желаемый цвет заполнения.
- Сохраните изменённую презентацию в файл PPTX.
Следующий JavaScript‑код демонстрирует, как применить сплошное заполнение к прямоугольнику в слайде PowerPoint:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let slide = presentation.getSlides().get_Item(0);
// Добавьте автоматическую фигуру типа Rectangle.
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 75);
// Установите тип заливки в Solid.
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
// Установите цвет заливки.
shape.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "YELLOW"));
// Сохраните файл PPTX на диск.
presentation.save("solid_color_fill.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Установка прозрачности
В PowerPoint, когда вы применяете сплошное, градиентное, изображение или текстурное заполнение к фигурам, можно также задать уровень прозрачности, контролирующий непрозрачность заполнения. Чем выше значение прозрачности, тем более «прозрачной» становится фигура, позволяя видеть фон или объекты, расположенные ниже.
Aspose.Slides позволяет установить уровень прозрачности, изменяя альфа‑компонент цвета, используемого для заполнения. Как это сделать:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Установите FillType в значение
Solid. - Используйте
Colorдля определения цвета с прозрачностью (компонентalphaуправляет прозрачностью). - Сохраните презентацию.
Следующий JavaScript‑код демонстрирует, как применить прозрачный цвет заполнения к прямоугольнику:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let slide = presentation.getSlides().get_Item(0);
// Добавьте сплошную прямоугольную автоматическую фигуру.
let solidShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 75);
// Добавьте прозрачную прямоугольную автоматическую фигуру поверх сплошной фигуры.
let transparentShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 80, 80, 150, 75);
transparentShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
transparentShape.getFillFormat().getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", 255, 255, 0, 204));
// Сохраните файл PPTX на диск.
presentation.save("shape_transparency.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Поворот фигур
Aspose.Slides позволяет поворачивать фигуры в презентациях PowerPoint. Это может быть полезно при позиционировании визуальных элементов с определёнными требованиями к выравниванию или дизайну.
Чтобы повернуть фигуру на слайде, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Установите свойство вращения фигуры на требуемый угол.
- Сохраните презентацию.
Следующий JavaScript‑код демонстрирует, как повернуть фигуру на 5 градусов:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
// Создайте объект класса Presentation, представляющий файл презентации.
let presentation = new aspose.slides.Presentation();
try {
// Получите первый слайд.
let slide = presentation.getSlides().get_Item(0);
// Добавьте автоматическую фигуру типа Rectangle.
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 75);
// Поверните фигуру на 5 градусов.
shape.setRotation(5);
// Сохраните файл PPTX на диск.
presentation.save("shape_rotation.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Добавление 3D‑эффектов фаски
Aspose.Slides позволяет применять 3D‑эффекты фаски к фигурам, настраивая их свойства ThreeDFormat.
Чтобы добавить 3D‑эффекты фаски к фигуре, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Настройте у фигуры ThreeDFormat для определения параметров фаски.
- Сохраните презентацию.
Следующий JavaScript‑код показывает, как применить 3D‑эффекты фаски к фигуре:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Создайте экземпляр класса Presentation.
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
// Добавьте фигуру на слайд.
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Ellipse, 50, 50, 100, 100);
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "GREEN"));
shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape.getLineFormat().getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE"));
shape.getLineFormat().setWidth(2.0);
// Установите свойства ThreeDFormat фигуры.
shape.getThreeDFormat().setDepth(4);
shape.getThreeDFormat().getBevelTop().setBevelType(aspose.slides.BevelPresetType.Circle);
shape.getThreeDFormat().getBevelTop().setHeight(6);
shape.getThreeDFormat().getBevelTop().setWidth(6);
shape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.OrthographicFront);
shape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.ThreePt);
shape.getThreeDFormat().getLightRig().setDirection(aspose.slides.LightingDirection.Top);
// Сохраните презентацию в файл PPTX.
presentation.save("3D_bevel_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Добавление 3D‑вращения
Aspose.Slides позволяет применять 3D‑вращение к фигурам, настраивая их свойства ThreeDFormat.
Чтобы применить 3D‑вращение к фигуре:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд по его индексу.
- Добавьте AutoShape на слайд.
- Используйте setCameraType и setLightType для определения 3D‑вращения.
- Сохраните презентацию.
Следующий JavaScript‑код демонстрирует, как применить 3D‑вращение к фигуре:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
// Создайте экземпляр класса Presentation.
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
let autoShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 150, 75);
autoShape.getTextFrame().setText("Hello, Aspose!");
autoShape.getThreeDFormat().setDepth(6);
autoShape.getThreeDFormat().getCamera().setRotation(40, 35, 20);
autoShape.getThreeDFormat().getCamera().setCameraType(aspose.slides.CameraPresetType.IsometricLeftUp);
autoShape.getThreeDFormat().getLightRig().setLightType(aspose.slides.LightRigPresetType.Balanced);
// Сохраните презентацию в файл PPTX.
presentation.save("3D_rotation_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Результат:

Управление черно‑белой визуализацией фигур
Метод Shape.setBlackWhiteMode задаёт, как отдельная фигура будет отрисована при просмотре или обработке презентации в черно‑белом режиме. Он сам по себе не включает черно‑белый режим и не меняет заполнение, линии или другое форматирование фигуры в обычном цветовом режиме.
Для выбора желаемого поведения используйте значение из перечисления BlackWhiteMode. Например, Automatic позволяет приложению рендеринга выбрать способ конвертации, Gray и LightGray используют оттенки серого, BlackWhite — только чёрный и белый, Black и White — принудительно один цвет, Color сохраняет обычные цвета, а Hidden — исключает фигуру в черно‑белом режиме. NotDefined означает, что режим на уровне фигуры не задан.
Следующий JavaScript‑код создаёт цветную фигуру и заставляет её отображаться серой в черно‑белом режиме отображения:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation();
try {
let slide = presentation.getSlides().get_Item(0);
let shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 50, 50, 200, 100);
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
shape.getFillFormat().getSolidFillColor().setColor(java.getStaticFieldValue("java.awt.Color", "ORANGE"));
// Сохраните оранжевую заливку в цветном режиме, но отобразите фигуру в сером цвете в черно‑белом режиме.
shape.setBlackWhiteMode(java.newByte(aspose.slides.BlackWhiteMode.Gray));
presentation.save("shape_black_white_mode.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
В обычном цветовом режиме прямоугольник сохраняет оранжевое заполнение. При работе в черно‑белом режиме он отображается серым, потому что его режим установлен в Gray. Это позволяет сохранять полноцветный слайд, задавая отдельный вид для печати, просмотра или других процессов, учитывающих настройки черно‑белого отображения презентации.
Сброс форматирования
Следующий JavaScript‑код показывает, как сбросить форматирование слайда и вернуть позицию, размер и форматирование всех фигур с заполнителями на LayoutSlide к их исходным настройкам:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("sample.pptx");
try {
for (let i = 0; i < presentation.getSlides().size(); i++) {
let slide = presentation.getSlides().get_Item(i);
// Сбросить каждую фигуру на слайде, у которой есть заполнитель в макете.
slide.reset();
}
presentation.save("reset_formatting.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
FAQ
Влияет ли форматирование фигур на конечный размер файла презентации?
Только незначительно. Встроенные изображения и медиа занимают большую часть места, тогда как параметры фигур, такие как цвета, эффекты и градиенты, хранятся как метаданные и практически не увеличивают размер файла.
Как определить фигуры на слайде, имеющие идентичное форматирование, чтобы сгруппировать их?
Сравните у каждой фигуры ключевые свойства форматирования — заполнение, линии и эффекты. Если все соответствующие значения совпадают, рассматривайте их стили как одинаковые и логически группируйте такие фигуры, что упрощает управление стилями в дальнейшем.
Можно ли сохранить набор пользовательских стилей фигур в отдельный файл для повторного использования в других презентациях?
Да. Сохраните образцы фигур с нужными стилями в шаблонный набор слайдов или файл шаблона .POTX. При создании новой презентации откройте шаблон, клонируйте необходимые стилизованные фигуры и повторно примените их форматирование там, где это требуется.