Конвертировать PPT и PPTX в JPG в PHP

О конвертации PowerPoint в JPG

С помощью Aspose.Slides API вы можете преобразовать презентацию PowerPoint PPT или PPTX в изображение JPG. Также возможно конвертировать PPT/PPTX в JPEG, PNG или SVG. Благодаря этим возможностям легко реализовать собственный просмотрщик презентаций, создать миниатюру для каждого слайда. Это может быть полезно, если вы хотите защитить слайды презентации от копирования, демонстрировать презентацию в режиме только для чтения. Aspose.Slides позволяет преобразовать всю презентацию или отдельный слайд в форматы изображений.

[todo:image_alt_text

Преобразование PowerPoint PPT/PPTX в JPG

Ниже перечислены шаги для конвертации PPT/PPTX в JPG:

  1. Создайте экземпляр типа Presentation.
  2. Получите объект слайда типа ISlide из коллекции Presentation.getSlides().
  3. Создайте миниатюру каждого слайда, а затем преобразуйте её в JPG. Метод ISlide.getImage(float scaleX, float scaleY) используется для получения миниатюры слайда, он возвращает объект Images. Метод getImage должен вызываться у нужного слайда типа [ISlide], в него передаются масштабы получаемой миниатюры.
  4. После получения миниатюры слайда вызовите метод [IImage.save(String formatName, int imageFormat)](https://reference.aspose.com/slides/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) у объекта миниатюры. Передайте ему имя получаемого файла и формат изображения.
  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    foreach($pres->getSlides() as $sld) {
      # Создает изображение в полном масштабе
      $slideImage = $sld->getImage(1.0, 1.0);
      # Сохраняет изображение на диск в формате JPEG
      try {
        $slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Преобразование PowerPoint PPT/PPTX в JPG с пользовательскими размерами

Чтобы изменить размеры получаемой миниатюры и JPG‑изображения, вы можете задать значения ScaleX и ScaleY, передав их в методы ISlide.getImage(float scaleX, float scaleY):

  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    # Определяет размеры
    $desiredX = 1200;
    $desiredY = 800;
    # Получает масштабированные значения X и Y
    $ScaleX = 1.0 / $pres->getSlideSize()->getSize()->getWidth() * $desiredX;
    $ScaleY = 1.0 / $pres->getSlideSize()->getSize()->getHeight() * $desiredY;
    foreach($pres->getSlides() as $sld) {
      # Создает изображение в полном масштабе
      $slideImage = $sld->getImage($ScaleX, $ScaleY);
      # Сохраняет изображение на диск в формате JPEG
      try {
        $slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Отрисовка комментариев при сохранении слайдов как изображений

Aspose.Slides for PHP via Java предоставляет возможность отрисовывать комментарии на слайдах презентации при их преобразовании в изображения. Этот код PHP демонстрирует процесс:

  $pres = new Presentation("presentation.pptx");
  try {
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomTruncated);
    $opts = new RenderingOptions();
    $opts->setSlidesLayoutOptions($notesOptions);
    foreach($pres->getSlides() as $sld) {
      $slideImage = $sld->getImage($opts, new Java("java.awt.Dimension", 740, 960));
      try {
        $slideImage->save(String->format("Slide_%d.png", $sld->getSlideNumber()));
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Часто задаваемые вопросы

Поддерживает ли этот метод пакетную конвертацию?

Да, Aspose.Slides позволяет пакетно конвертировать несколько слайдов в JPG за одну операцию.

Поддерживает ли конвертация SmartArt, диаграммы и другие сложные объекты?

Да, Aspose.Slides отображает всё содержимое, включая SmartArt, диаграммы, таблицы, фигуры и пр. Однако точность отображения может немного отличаться от PowerPoint, особенно при использовании пользовательских или отсутствующих шрифтов.

Есть ли ограничения на количество обрабатываемых слайдов?

Сам Aspose.Slides не накладывает строгих ограничений на количество обрабатываемых слайдов. Однако при работе с крупными презентациями или изображениями высокого разрешения может возникнуть ошибка нехватки памяти.

Смотрите также

Смотрите другие варианты конвертации PPT/PPTX в изображение, например: