Converter PPT e PPTX para JPG em PHP

Introdução

Converter apresentações PowerPoint e OpenDocument para imagens JPG ajuda na tarefa de compartilhar slides, otimizar o desempenho e incorporar conteúdo em sites ou aplicativos. O Aspose.Slides permite transformar arquivos PPTX, PPT e ODP em imagens JPEG de alta qualidade. Este guia explica diferentes métodos para conversão.

Com esses recursos, é fácil implementar seu próprio visualizador de apresentações e criar uma miniatura para cada slide. Isso pode ser útil se você quiser proteger os slides da apresentação contra cópia ou demonstrar a apresentação em modo somente leitura. O Aspose.Slides permite converter a apresentação inteira ou um slide específico em formatos de imagem.

Converter PowerPoint PPT/PPTX para JPG

  1. Crie uma instância do tipo Presentation.
  2. Obtenha o objeto de slide do tipo Slide a partir da coleção Presentation::getSlides().
  3. Crie a miniatura de cada slide e depois converta-a para JPG. O método Slide::getImage(float scaleX, float scaleY) é usado para obter uma miniatura de um slide. O método getImage deve ser chamado a partir do slide necessário do tipo Slide, e as escalas da miniatura resultante são passadas para o método.
  4. Depois de obter a miniatura do slide, chame o método [IImage::save(String formatName, int imageFormat)](https://reference.aspose.com/slides/pt/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) a partir do objeto da miniatura. Passe o nome do arquivo resultante e o formato da imagem para ele.
  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    foreach($pres->getSlides() as $sld) {
      # Cria uma imagem em escala total
      $slideImage = $sld->getImage(1.0, 1.0);
      # Salva a imagem no disco em formato 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();
    }
  }

Converter PowerPoint PPT/PPTX para JPG com Dimensões Personalizadas

Para alterar a dimensão da miniatura e da imagem JPG resultantes, você pode definir os valores ScaleX e ScaleY passando‑os para os métodos Slide::getImage(float scaleX, float scaleY):

  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    # Define as dimensões
    $desiredX = 1200;
    $desiredY = 800;
    # Obtém valores escalados de X e Y
    $ScaleX = 1.0 / $pres->getSlideSize()->getSize()->getWidth() * $desiredX;
    $ScaleY = 1.0 / $pres->getSlideSize()->getSize()->getHeight() * $desiredY;
    foreach($pres->getSlides() as $sld) {
      # Cria uma imagem em escala total
      $slideImage = $sld->getImage($ScaleX, $ScaleY);
      # Salva a imagem no disco em formato 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();
    }
  }

Renderizar Comentários ao Salvar Slides como Imagens

O Aspose.Slides for PHP via Java oferece um recurso que permite renderizar comentários nos slides de uma apresentação ao convertê‑los em imagens. Este código PHP demonstra a operação:

  $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();
    }
  }

Perguntas Frequentes

Este método suporta conversão em lote?

Sim, o Aspose.Slides permite a conversão em lote de vários slides para JPG em uma única operação.

A conversão suporta SmartArt, gráficos e outros objetos complexos?

Sim, o Aspose.Slides renderiza todo o conteúdo, incluindo SmartArt, gráficos, tabelas, formas e muito mais. Contudo, a precisão da renderização pode variar ligeiramente em relação ao PowerPoint, especialmente ao usar fontes personalizadas ou ausentes.

Existem limitações no número de slides que podem ser processados?

O próprio Aspose.Slides não impõe limites rígidos ao número de slides que você pode processar. No entanto, pode ocorrer erro de falta de memória ao trabalhar com apresentações grandes ou imagens de alta resolução.

Veja Também

Veja outras opções para converter PPT/PPTX em imagem como: