Преобразование слайдов PowerPoint в PNG на PHP

О преобразовании PowerPoint в PNG

Формат PNG (Portable Network Graphics) не так популярен, как JPEG (Joint Photographic Experts Group), но всё равно очень популярен.

Случай использования: Когда у вас сложное изображение и размер не имеет значения, PNG — лучшее изображение, чем JPEG.

Преобразовать PowerPoint в PNG

Выполните следующие шаги:

  1. Создайте экземпляр класса Presentation.
  2. Получите объект слайда из коллекции Presentation.getSlides() под интерфейсом ISlide.
  3. Используйте метод ISlide.getImage() чтобы получить миниатюру для каждого слайда.
  4. Вызовите метод [IImage.save(String formatName, int imageFormat)](https://reference.aspose.com/slides/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) чтобы сохранить миниатюру слайда в формате PNG.

Этот код PHP показывает, как преобразовать презентацию PowerPoint в PNG:

  $pres = new Presentation("pres.pptx");
  try {
    for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
      $slide = $pres->getSlides()->get_Item($index);
      $slideImage = $slide->getImage();
      try {
        $slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Преобразовать PowerPoint в PNG с пользовательскими размерами

Если вы хотите получить PNG‑файлы определённого масштаба, можете задать значения desiredX и desiredY, которые определяют размеры получаемой миниатюры.

Этот код демонстрирует описанную операцию:

  $pres = new Presentation("pres.pptx");
  try {
    $scaleX = 2.0;
    $scaleY = 2.0;
    for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
      $slide = $pres->getSlides()->get_Item($index);
      $slideImage = $slide->getImage($scaleX, $scaleY);
      try {
        $slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Преобразовать PowerPoint в PNG с пользовательским размером

Если вы хотите получить PNG‑файлы определённого размера, можете передать желаемые параметры width и height для ImageSize.

Этот код показывает, как преобразовать PowerPoint в PNG, задав размер изображений:

  $pres = new Presentation("pres.pptx");
  try {
    $size = new Java("java.awt.Dimension", 960, 720);
    for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
      $slide = $pres->getSlides()->get_Item($index);
      $slideImage = $slide->getImage($size);
      try {
        $slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

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

Aspose.Slides поддерживает создание миниатюр для отдельных фигур; вы можете отрисовать форму в PNG‑изображение.

Поддерживается ли параллельное преобразование на сервере?

Да, но не делитесь одним экземпляром презентации между потоками. Используйте отдельный экземпляр для каждого потока или процесса.

Каковы ограничения пробной версии при экспорте в PNG?

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