Convertir diapositivas de PowerPoint a PNG en .NET

Resumen

Este artículo explica cómo convertir una presentación de PowerPoint al formato PNG usando C#. Cubre los siguientes temas.

PowerPoint a PNG en .NET

Para obtener código de ejemplo en C# que convierta PowerPoint a PNG, vea la sección a continuación, es decir, Convertir PowerPoint a PNG. El código puede cargar varios formatos como PPT, PPTX y ODP en el objeto Presentation y luego guardar la miniatura de sus diapositivas en formato PNG. Otras conversiones de PowerPoint a imagen, similares como JPG, BMP, TIFF y SVG, se tratan en los siguientes artículos.

Acerca de la conversión de PowerPoint a PNG

El formato PNG (Portable Network Graphics) no es tan popular como JPEG (Joint Photographic Experts Group), pero sigue siendo muy popular.

Caso de uso: Cuando tienes una imagen compleja y el tamaño no es un problema, PNG es un formato de imagen mejor que JPEG.

Convertir PowerPoint a PNG

Sigue estos pasos:

  1. Instancia la clase Presentation.
  2. Obtén el objeto de diapositiva de la colección Presentation.Slides bajo la interfaz ISlide.
  3. Usa el método ISlide.GetImage para obtener la miniatura de cada diapositiva.
  4. Usa el método IPresentation.Save(String, SaveFormat, ISaveOptions para guardar la miniatura de la diapositiva en formato PNG.

Este código en C# muestra cómo convertir una presentación de PowerPoint a PNG. El objeto Presentation puede cargar PPT, PPTX, ODP, etc., y luego cada diapositiva del objeto Presentation se convierte al formato PNG u otros formatos de imagen.

using (Presentation pres = new Presentation("pres.pptx"))
{
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage())
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

Convertir PowerPoint a PNG con dimensiones personalizadas

Si deseas obtener archivos PNG con una escala determinada, puedes establecer los valores de desiredX y desiredY, que determinan las dimensiones de la miniatura resultante.

Este código en C# demuestra la operación descrita:

using (Presentation pres = new Presentation("pres.pptx"))
{
    float scaleX = 2f;
    float scaleY = 2f;
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage(scaleX, scaleY))
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

Convertir PowerPoint a PNG con tamaño personalizado

Si deseas obtener archivos PNG con un tamaño específico, puedes pasar los argumentos width y height que prefieras para imageSize.

Este código muestra cómo convertir un PowerPoint a PNG especificando el tamaño de las imágenes:

using (Presentation pres = new Presentation("pres.pptx"))
{
    Size size = new Size(960, 720);
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage(size))
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

Preguntas frecuentes

¿Cómo puedo exportar solo una forma específica (p. ej., gráfico o imagen) en lugar de toda la diapositiva?

Aspose.Slides admite generar miniaturas para formas individuales; puedes renderizar una forma a una imagen PNG.

¿Se admite la conversión paralela en un servidor?

Sí, pero no compartas una única instancia de presentación entre hilos. Utiliza una instancia separada por hilo o proceso.

¿Cuáles son las limitaciones de la versión de prueba al exportar a PNG?

El modo de evaluación añade una marca de agua a las imágenes de salida y aplica otras restricciones hasta que se aplique una licencia.