Отображение слайдов презентаций как SVG‑изображений в PHP

SVG-формат

SVG — аббревиатура от Scalable Vector Graphics — это стандартный тип графики или формат, используемый для отображения двумерных изображений. SVG хранит изображения как векторы в XML с деталями, определяющими их поведение или внешний вид.

SVG — один из немногих форматов изображений, отвечающих очень высоким требованиям в следующих областях: масштабируемость, интерактивность, производительность, доступность, программируемость и другие. По этим причинам он широко используется в веб‑разработке.

Вам может потребоваться использовать файлы SVG, когда необходимо

  • распечатать вашу презентацию в очень большом формате. SVG‑изображения могут масштабироваться до любой разрешающей способности. Вы можете менять размер SVG‑изображений сколько угодно раз без потери качества.
  • использовать диаграммы и графики из ваших слайдов в разных средах или платформах. Большинство просмотрщиков способны отображать файлы SVG.
  • получать наименьший возможный размер изображений. SVG‑файлы, как правило, меньше их высокоразрешающих аналогов в других форматах, особенно в форматах, основанных на растровой графике (JPEG или PNG).

Экспортировать слайд как SVG‑изображение

Aspose.Slides for PHP via Java позволяет экспортировать слайды вашей презентации в виде SVG‑изображений. Выполните следующие шаги, чтобы создать SVG‑изображения:

  1. Создайте экземпляр класса Presentation.
  2. Пройдитесь по всем слайдам в презентации.
  3. Запишите каждый слайд в отдельный SVG‑файл через FileOutputStream.

Этот пример кода показывает, как преобразовать PPT в SVG с помощью Aspose.Slides:

  $pres = new Presentation("pres.pptx");
  try {
    for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
      $slide = $pres->getSlides()->get_Item($index);
      $fileStream = new Java("java.io.FileOutputStream", "slide-" . $index . ".svg");
      try {
        $slide->writeAsSvg($fileStream);
      } finally {
        $fileStream->close();
      }
    }
  } catch (JavaException $e) {
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

Почему полученный SVG может выглядеть по‑разному в разных браузерах?

Поддержка конкретных возможностей SVG реализуется по‑разному в движках браузеров. Параметры SVGOptions помогают сгладить несовместимости.

Можно ли экспортировать не только слайды, но и отдельные фигуры в SVG?

Да. Любую фигуру можно сохранить как отдельный SVG, что удобно для значков, пиктограмм и повторного использования графики.

Можно ли объединить несколько слайдов в один SVG (полоска/документ)?

Стандартный сценарий — один слайд → один SVG. Объединение нескольких слайдов в один SVG‑канвас является постобработкой, выполняемой на уровне приложения.