Renderizar slides de apresentação como imagens SVG em PHP

Visão geral

Este artigo explica como renderizar slides de apresentação como imagens SVG usando Aspose.Slides. Ele descreve o formato SVG e suas vantagens, incluindo escalabilidade, acessibilidade e adequação ao desenvolvimento web.

Você aprenderá como carregar um arquivo de apresentação, percorrer seus slides e salvar cada slide como um arquivo SVG separado. O artigo abrange os formatos de apresentação PowerPoint e OpenDocument, incluindo PPT, PPTX, ODP e PPS, e mostra como executar a conversão programaticamente com a classe Presentation e o método writeAsSvg.

Formato SVG

SVG — sigla para Scalable Vector Graphics — é um tipo ou formato gráfico padrão usado para renderizar imagens bidimensionais. O SVG armazena imagens como vetores em XML com detalhes que definem seu comportamento ou aparência.

O SVG é um dos poucos formatos de imagem que atende a padrões muito elevados nesses termos: escalabilidade, interatividade, desempenho, acessibilidade, programabilidade e outros. Por essas razões, ele é comumente usado no desenvolvimento web.

Você pode querer usar arquivos SVG quando precisar

  • imprimir sua apresentação em um formato muito grande. As imagens SVG podem ser dimensionadas para qualquer resolução ou nível. Você pode redimensionar as imagens SVG quantas vezes precisar sem sacrificar a qualidade.
  • usar gráficos e diagramas dos seus slides em diferentes meios ou plataformas. A maioria dos visualizadores pode interpretar arquivos SVG.
  • usar o menor tamanho possível de imagens. Os arquivos SVG geralmente são menores que seus equivalentes de alta resolução em outros formatos, especialmente aqueles baseados em bitmap (JPEG ou PNG).

Renderizar um slide como imagem SVG

Aspose.Slides for PHP via Java permite exportar slides de suas apresentações como imagens SVG. Siga estas etapas para gerar imagens SVG:

  1. Crie uma instância da classe Presentation.
  2. Percorra todos os slides da apresentação.
  3. Grave cada slide em seu próprio arquivo SVG através de FileOutputStream.

Este código de exemplo mostra como converter PPT para SVG usando 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();
    }
  }

Perguntas frequentes

Por que o SVG resultante pode parecer diferente em diferentes navegadores?

O suporte a recursos específicos do SVG é implementado de forma diferente pelos motores dos navegadores. Os parâmetros SVGOptions ajudam a suavizar incompatibilidades.

É possível exportar não apenas slides, mas também formas individuais para SVG?

Sim. Qualquer shape pode ser salvo como um SVG separado é conveniente para ícones, pictogramas e reutilização de gráficos.

É possível combinar vários slides em um único SVG (tiragem/documento)?

O cenário padrão é um slide → um SVG. Combinar vários slides em um único canvas SVG é uma etapa de pós-processamento realizada no nível da aplicação.