Renderizar diapositivas de presentación como imágenes SVG en PHP

Formato SVG

SVG, acrónimo de Scalable Vector Graphics, es un tipo o formato de gráficos estándar utilizado para renderizar imágenes bidimensionales. SVG almacena las imágenes como vectores en XML con detalles que definen su comportamiento o apariencia.

SVG es uno de los pocos formatos de imágenes que cumple con estándares muy altos en estos aspectos: escalabilidad, interactividad, rendimiento, accesibilidad, programabilidad, entre otros. Por estas razones, se utiliza comúnmente en el desarrollo web.

Es posible que desee usar archivos SVG cuando necesite

  • imprimir su presentación en un formato muy grande. Las imágenes SVG pueden escalar a cualquier resolución o nivel. Puede cambiar el tamaño de las imágenes SVG tantas veces como sea necesario sin sacrificar la calidad.
  • usar gráficos y diagramas de sus diapositivas en diferentes medios o plataformas. La mayoría de los lectores pueden interpretar archivos SVG.
  • usar los tamaños más pequeños posibles de imágenes. Los archivos SVG suelen ser más pequeños que sus equivalentes de alta resolución en otros formatos, especialmente los formatos basados en mapa de bits (JPEG o PNG).

Renderizar una diapositiva como una imagen SVG

Aspose.Slides for PHP via Java le permite exportar diapositivas de sus presentaciones como imágenes SVG. Siga estos pasos para generar imágenes SVG:

  1. Cree una instancia de la clase Presentation.
  2. Itere a través de todas las diapositivas de la presentación.
  3. Escriba cada diapositiva en su propio archivo SVG mediante FileOutputStream.

Este fragmento de código muestra cómo convertir PPT a SVG utilizando 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();
    }
  }

Preguntas frecuentes

¿Por qué el SVG resultante puede verse diferente en distintos navegadores?

El soporte para características específicas de SVG se implementa de manera diferente por los motores de los navegadores. Los parámetros de SVGOptions ayudan a suavizar las incompatibilidades.

¿Es posible exportar no solo diapositivas sino también formas individuales a SVG?

Sí. Cualquier forma puede guardarse como un SVG separado, lo que resulta conveniente para íconos, pictogramas y reutilizar gráficos.

¿Se pueden combinar varias diapositivas en un único SVG (tirilla/documento)?

El escenario estándar es una diapositiva → un SVG. Combinar varias diapositivas en un único lienzo SVG es un paso de postprocesamiento que se realiza a nivel de aplicación.