Добавление прямоугольников в презентации на PHP

Добавить прямоугольник на слайд

Чтобы добавить простой прямоугольник на выбранный слайд презентации, выполните следующие шаги:

  • Создайте экземпляр класса Presentation.
  • Получите ссылку на слайд, используя его Index.
  • Добавьте AutoShape типа Rectangle, используя метод addAutoShape, предоставляемый объектом ShapeCollection.
  • Сохраните изменённую презентацию в файл PPTX.

В приведённом ниже примере мы добавили простой прямоугольник на первый слайд презентации.

  # Создать экземпляр класса Prseetation, представляющего PPTX
  $pres = new Presentation();
  try {
    # Получить первый слайд
    $sld = $pres->getSlides()->get_Item(0);
    # Добавить AutoShape типа эллипса
    $shp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 150, 150, 50);
    # Записать файл PPTX на диск
    $pres->save("RecShp1.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Добавить отформатированный прямоугольник на слайд

Чтобы добавить отформатированный прямоугольник на слайд, выполните следующие шаги:

  • Создайте экземпляр класса Presentation.
  • Получите ссылку на слайд, используя его Index.
  • Добавьте AutoShape типа Rectangle, используя метод addAutoShape, предоставляемый объектом ShapeCollection.
  • Установите Fill Type прямоугольника в Solid.
  • Задайте цвет прямоугольника с помощью метода ColorFormat::setColor, предоставляемого объектом FillFormat, связанным с объектом Shape.
  • Установите цвет линий прямоугольника.
  • Установите ширину линий прямоугольника.
  • Сохраните изменённую презентацию в файл PPTX.

Вышеуказанные шаги реализованы в примере, приведённом ниже.

  # Создать экземпляр класса Presentation, представляющего PPTX
  $pres = new Presentation();
  try {
    # Получить первый слайд
    $sld = $pres->getSlides()->get_Item(0);
    # Добавить AutoShape типа эллипса
    $shp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 150, 150, 50);
    # Применить некоторые параметры форматирования к эллипсу
    $shp->getFillFormat()->setFillType(FillType::Solid);
    $shp->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GRAY);
    # Применить некоторые параметры форматирования к линии эллипса
    $shp->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
    $shp->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLACK);
    $shp->getLineFormat()->setWidth(5);
    # Записать файл PPTX на диск
    $pres->save("RecShp2.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

Как добавить прямоугольник с закруглёнными углами?

Используйте тип фигуры с закруглёнными углами shape type и отрегулируйте радиус угла в свойствах фигуры; закругление также можно применить к каждому углу отдельно с помощью корректировок геометрии.

Как залить прямоугольник изображением (текстурой)?

Выберите тип заливки изображением fill type, укажите источник изображения и настройте режимы растяжения/мозаики.

Можно ли добавить к прямоугольнику тень и светящийся контур?

Да. Доступны внешняя/внутренняя тень, светящийся контур и мягкие края с настраиваемыми параметрами.

Можно ли превратить прямоугольник в кнопку с гиперссылкой?

Да. Назначьте гиперссылку при щелчке по фигуре (перейти к слайду, файлу, веб‑адресу или e‑mail).

Как защитить прямоугольник от перемещения и изменений?

Используйте блокировки фигуры: вы можете запретить перемещение, изменение размера, выделение или редактирование текста, чтобы сохранить макет.

Можно ли преобразовать прямоугольник в растровое изображение или SVG?

Да. Вы можете отрендерить фигуру в изображение с заданным размером/масштабом или экспортировать её как SVG для векторного использования.

Как быстро получить фактические (эффективные) свойства прямоугольника с учётом темы и наследования?

Используйте эффективные свойства фигуры: API возвращает вычисленные значения, учитывающие стили темы, макет и локальные настройки, упрощая анализ форматирования.