Настройка областей построения диаграмм презентаций в PHP

Получить ширину и высоту области построения диаграммы

Aspose.Slides для PHP через Java предоставляет простой API для .

  1. Создайте экземпляр класса Presentation.
  2. Получите первый слайд.
  3. Добавьте диаграмму с данными по умолчанию.
  4. Вызовите метод Chart.validateChartLayout перед получением фактических значений.
  5. Получает фактическое положение по оси X (слева) элемента диаграммы относительно левого верхнего угла диаграммы.
  6. Получает фактическую позицию сверху элемента диаграммы относительно левого верхнего угла диаграммы.
  7. Получает фактическую ширину элемента диаграммы.
  8. Получает фактическую высоту элемента диаграммы.
  # Создать экземпляр класса Presentation
  $pres = new Presentation();
  try {
    $chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 500, 350);
    $chart->validateChartLayout();
    $x = $chart->getPlotArea()->getActualX();
    $y = $chart->getPlotArea()->getActualY();
    $w = $chart->getPlotArea()->getActualWidth();
    $h = $chart->getPlotArea()->getActualHeight();
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Установить режим компоновки области построения диаграммы

Aspose.Slides для PHP через Java предоставляет простой API для установки режима компоновки области построения диаграммы. Методы setLayoutTargetType и getLayoutTargetType добавлены в класс ChartPlotArea. Если компоновка области построения определена вручную, это свойство указывает, следует ли размещать область построения по её внутренней части (не включая оси и подписи осей) или по внешней части (включая оси и подписи осей). Существует два возможных значения, определённых в перечислении LayoutTargetType enum.

  • LayoutTargetType::Inner — указывает, что размер области построения определяет размер области построения без учёта делений и подписей осей.
  • LayoutTargetType::Outer — указывает, что размер области построения определяет размер области построения, включая деления и подписи осей.

Пример кода приведён ниже.

  # Создать экземпляр класса Presentation
  $pres = new Presentation();
  try {
    $slide = $pres->getSlides()->get_Item(0);
    $chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 20, 100, 600, 400);
    $chart->getPlotArea()->setX(0.2);
    $chart->getPlotArea()->setY(0.2);
    $chart->getPlotArea()->setWidth(0.7);
    $chart->getPlotArea()->setHeight(0.7);
    $chart->getPlotArea()->setLayoutTargetType(LayoutTargetType::Inner);
    $pres->save("SetLayoutMode_outer.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

В каких единицах возвращаются фактические x, фактические y, фактическая ширина и фактическая высота?

В пунктах; 1 дюйм = 72 пункта. Это единицы координат Aspose.Slides.

Чем область построения отличается от области диаграммы по содержимому?

Область построения — это область отрисовки данных (серии, линии сетки, трендовые линии и т.п.); область диаграммы включает окружающие элементы (заголовок, легенду и т.п.). В 3‑D диаграммах область построения также включает стены/пол и оси.

Как интерпретируются x, y, ширина и высота области построения при ручной компоновке?

Это дробные значения (0–1) от общего размера диаграммы; в этом режиме автоматическое позиционирование отключено, и используются заданные вами дроби.

Почему положение области построения изменилось после добавления/перемещения легенды?

Легенда размещается в области диаграммы за пределами области построения, но влияет на компоновку и доступное пространство, поэтому область построения может смещаться, когда включено автоматическое позиционирование. (Это стандартное поведение диаграмм PowerPoint.)