HERRAMIENTAS PPT

Cómo utilizar C# para convertir PowerPoint a imagen

Regan Pun
Regan Pun
12 de marzo, 2024
Compartir:

Introducción

La necesidad de convertir presentaciones de PowerPoint a formatos de imagen ocurre frecuentemente en el campo del desarrollo de software. A muchos desarrolladores les resulta útil poder convertir mediante programación archivos PowerPoint en fotos, ya sea para generar vistas previas, crear miniaturas o integrar sistemas. Este artículo explicará cómo realizar esta operación con C# ppt to image e incluirá algunos ejemplos de código para ayudarle en el proceso.

Cómo utilizar C# para convertir PowerPoint a imagen

  1. Crear instancia de aplicación PowerPoint.

  2. Abrir Presentación utilizando la Instancia.

  3. Compruebe y cree una carpeta de salida.

  4. Iterar a través de diapositivas y exportar diapositivas a imágenes.

  5. Cierre la presentación y salga de la aplicación.

¿Convertir presentaciones de PowerPoint a formatos de imagen?

Echemos un vistazo rápido a la importancia de convertir diapositivas de PowerPoint en fotos antes de entrar en los detalles. Aunque PowerPoint es una gran herramienta para hacer presentaciones dinámicas, no siempre es factible compartir estos archivos en su formato original. A veces, sólo se necesitan determinadas diapositivas o fotos tomadas de la presentación, y otras veces, los diferentes sistemas y configuraciones pueden no permitir la renderización directa de archivos PowerPoint. Al convertir las presentaciones de PowerPoint en imágenes, se ofrece una solución integral que resulta sencilla de compartir y visualizar en diversos dispositivos y aplicaciones.

Uso de la biblioteca PowerPoint Interop

Existen varios métodos para convertir presentaciones de PowerPoint en fotos en C#. Usar el Microsoft.Office.Interop.PowerPoint namespace, que ofrece clases y métodos para interactuar programáticamente con aplicaciones de PowerPoint, es un enfoque popular. Esto proporciona una amplia capacidad para trabajar con archivos de PowerPoint.

Crear un nuevo proyecto de Visual Studio

Siga los siguientes pasos para crear un nuevo proyecto de Visual Studio:

Abre el IDE de Visual Studio. Asegúrate de haber instalado Visual Studio en tu PC antes de usarlo.

Lanzar un nuevo proyecto:

Elija Archivo, Nuevo y, por último, Proyecto.

Cómo usar C# para convertir PowerPoint a imagen: Figura 1 - Abrir Visual Studio y seleccionar Archivo - Nuevo - Proyecto.

Desde el cuadro "Crear un nuevo proyecto", selecciona tu lenguaje de programación favorito (C#, por ejemplo) del lado izquierdo.

A continuación, selecciona la plantilla "Console App" o "Console App (.NET Core)" de la lista de plantillas de proyecto disponibles.

Rellene la sección "Nombre" para dar un nombre a su proyecto.

Cómo usar C# para convertir PowerPoint a imagen: Figura 2 - Desde el cuadro Crear nuevo proyecto, selecciona el lenguaje de programación C# y Aplicación de Consola. Configura el nombre y la ubicación del proyecto, luego haz clic en el botón Siguiente.

Seleccione la ubicación de almacenamiento del proyecto.

Haga clic en "Crear" para empezar a trabajar en un nuevo proyecto de aplicación de Consola.

Cómo usar C# para convertir PowerPoint a imagen: Figura 3 - Seleccione el .NET Framework apropiado y haga clic en el botón Crear.

Convertir diapositivas de PowerPoint en imágenes en C#

Empecemos por ver cómo utilizar el espacio de nombres Microsoft.Office.Interop.PowerPoint para convertir diapositivas de PowerPoint en imágenes. Asegúrese de que los ensamblados requeridos estén instalados y agregados a su proyecto de C# como referencias primero. Estos ensamblados suelen encontrarse al referirse directamente a los ensamblados InterOp o al instalar los ensamblados de interoperabilidad primaria de Microsoft Office (PIA).

Ejemplo de código

using System.IO;
using Microsoft.Office.Interop.PowerPoint;
class Program
{
    static void Main(string [] args)
    {
        string pptFilePath = "demo.pptx"; // Path to your PowerPoint file
        string outputFolder = "output_images"; // Output folder path where images will be saved
        ConvertPptToImages(pptFilePath, outputFolder);
    }
    static void ConvertPptToImages(string pptFilePath, string outputFolder)
    {
        Application pptApplication = new Application();
        Presentation pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
        if (!Directory.Exists(outputFolder))
            Directory.CreateDirectory(outputFolder);
        int slidesCount = pptPresentation.Slides.Count;
        for (int i = 1; i <= slidesCount; i++)
        {
            string outputPath = Path.Combine(outputFolder, $"Slide{i}.png");
            pptPresentation.Slides[i].Export(outputPath, "png", 1024, 768);
        //saving the presentation slides into png images
        }
        pptPresentation.Close();
        pptApplication.Quit();
    }
}
using System.IO;
using Microsoft.Office.Interop.PowerPoint;
class Program
{
    static void Main(string [] args)
    {
        string pptFilePath = "demo.pptx"; // Path to your PowerPoint file
        string outputFolder = "output_images"; // Output folder path where images will be saved
        ConvertPptToImages(pptFilePath, outputFolder);
    }
    static void ConvertPptToImages(string pptFilePath, string outputFolder)
    {
        Application pptApplication = new Application();
        Presentation pptPresentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
        if (!Directory.Exists(outputFolder))
            Directory.CreateDirectory(outputFolder);
        int slidesCount = pptPresentation.Slides.Count;
        for (int i = 1; i <= slidesCount; i++)
        {
            string outputPath = Path.Combine(outputFolder, $"Slide{i}.png");
            pptPresentation.Slides[i].Export(outputPath, "png", 1024, 768);
        //saving the presentation slides into png images
        }
        pptPresentation.Close();
        pptApplication.Quit();
    }
}
Imports System.IO
Imports Microsoft.Office.Interop.PowerPoint
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim pptFilePath As String = "demo.pptx" ' Path to your PowerPoint file
		Dim outputFolder As String = "output_images" ' Output folder path where images will be saved
		ConvertPptToImages(pptFilePath, outputFolder)
	End Sub
	Private Shared Sub ConvertPptToImages(ByVal pptFilePath As String, ByVal outputFolder As String)
		Dim pptApplication As New Application()
		Dim pptPresentation As Presentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse)
		If Not Directory.Exists(outputFolder) Then
			Directory.CreateDirectory(outputFolder)
		End If
		Dim slidesCount As Integer = pptPresentation.Slides.Count
		For i As Integer = 1 To slidesCount
			Dim outputPath As String = Path.Combine(outputFolder, $"Slide{i}.png")
			pptPresentation.Slides(i).Export(outputPath, "png", 1024, 768)
		'saving the presentation slides into png images
		Next i
		pptPresentation.Close()
		pptApplication.Quit()
	End Sub
End Class
$vbLabelText   $csharpLabel

El espacio de nombres de C# necesario para trabajar con aplicaciones de PowerPoint se importa utilizando la declaración Microsoft.Office.Interop.PowerPoint;. El punto de entrada del programa es el método Main. Designa la carpeta de salida (outputFolder), que es donde se guardarán las fotografías creadas, y la ruta al archivo de PowerPoint (pptFilePath). Este método se encarga de la transformación real de las presentaciones de PowerPoint en fotos.

Archivo de presentación PowerPoint

Cómo usar C# para convertir PowerPoint a imagen: Figura 4 - PowerPoint ppt utilizado para el ejemplo de código.

Application pptApplication = new Application(); se usa para iniciar una nueva instancia del programa PowerPoint. Esto permite la interacción programática con PowerPoint. Usando pptApplication.Presentations, abrimos el archivo de presentación de PowerPoint indicado por la función pptFilePath.Open(). Esta función devuelve un objeto Presentación, que representa la presentación abierta. Determinamos si la carpeta de salida "outputFolder" está presente. Si no es así, utilizamos el método Directory.CreateDirectory() para crearlo.

Salida de la consola

Cómo usar C# para convertir PowerPoint a imagen: Figura 5 - Salida de consola.

Utilizamos un bucle for para recorrer cada diapositiva de la presentación. El pptPresentation proporciona el número total de diapositivas utilizando la propiedad Slides.Count. Usamos la ruta de la carpeta de salida y el índice de la diapositiva para crear la ruta de salida para la imagen de cada diapositiva (como Slides{i}.png). A continuación, usamos pptPresentation para exportar la diapositiva de PowerPoint como una imagen (en este ejemplo, en formato de imagen JPG, imagen PNG) usando la función Export(). Los parámetros son el formato de la imagen ("formato png") y el tamaño (ancho: 1024, altura: 768). Por último, usamos pptPresentation para finalizar la presentación. Cierra() y usa pptApplication para terminar la sesión de PowerPoint. Para liberar adecuadamente los recursos del sistema, use Quit().

Salida - Convertir un PowerPoint en imágenes PNG

Cómo usar C# para convertir PowerPoint en imagen: Figura 6 - Diapositivas de PowerPoint exportadas a imágenes PNG.

IronXL

Un marco de .NET muy popular llamado IronXL facilita la manipulación de archivos Excel en C#. Con su amplio conjunto de funciones para leer, crear y editar archivos Excel, es una herramienta flexible adecuada para una gran variedad de usos. A continuación repasaré algunas de las principales características de IronXL:

  • Los desarrolladores pueden escribir rápidamente datos en archivos de Excel nuevos o existentes y leer datos de archivos de Excel ya existentes utilizando IronXL. Esto incluye el acceso a los atributos de la hoja de cálculo y del libro de trabajo, como el formato, las fórmulas y los valores de las celdas.
  • Con IronXL, los desarrolladores pueden importar datos a hojas de cálculo Excel desde diversas fuentes, como bases de datos y archivos CSV. Asimismo, la información de los archivos Excel puede exportarse a CSV, HTML, XML y PDF, entre otros formatos de archivo.
  • Los desarrolladores pueden añadir, editar y eliminar dinámicamente hojas de cálculo de hojas de cálculo de Excel utilizando IronXL. Esto proporciona flexibilidad a la organización y estructura de los datos en función de las necesidades de la aplicación.
  • IronXL permite manipular con precisión celdas individuales en hojas de cálculo de Excel. Mediante programación, los desarrolladores pueden establecer el formato, los estilos, las fórmulas, los valores de las celdas y otras características.

    Para obtener más información sobre la documentación, consulta la Documentación de IronXL.

Instalar IronXL

Comencemos instalando IronXL mediante la consola del gestor de paquetes NuGet antes de seguir avanzando:

Install-Package IronXL.Excel

Después de la instalación, IronXL puede ser utilizado en nuestro proyecto C#.

Uso de IronXL para operaciones en Excel

Examinemos una situación hipotética en la que deseamos utilizar IronXL para leer datos de un archivo de Excel.

El siguiente ejemplo de código ilustra rápidamente cómo conseguirlo:

using IronXL;
using System;
class Program
{
    static void Main(string [] args)
    {
        // Path to the Excel file
        string excelFilePath = "sample.xlsx";
        // Load the Excel file
        WorkBook workbook = WorkBook.Load(excelFilePath);
        // Access the first worksheet
        WorkSheet worksheet = workbook.WorkSheets[0];
        // Iterate through rows and columns to read data
        foreach (var row in worksheet.Rows)
        {
            foreach (var cell in row)
            {
                Console.Write(cell.Value + "\t");
            }
            Console.WriteLine();
        }
    }
}
using IronXL;
using System;
class Program
{
    static void Main(string [] args)
    {
        // Path to the Excel file
        string excelFilePath = "sample.xlsx";
        // Load the Excel file
        WorkBook workbook = WorkBook.Load(excelFilePath);
        // Access the first worksheet
        WorkSheet worksheet = workbook.WorkSheets[0];
        // Iterate through rows and columns to read data
        foreach (var row in worksheet.Rows)
        {
            foreach (var cell in row)
            {
                Console.Write(cell.Value + "\t");
            }
            Console.WriteLine();
        }
    }
}
Imports Microsoft.VisualBasic
Imports IronXL
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Path to the Excel file
		Dim excelFilePath As String = "sample.xlsx"
		' Load the Excel file
		Dim workbook As WorkBook = WorkBook.Load(excelFilePath)
		' Access the first worksheet
		Dim worksheet As WorkSheet = workbook.WorkSheets(0)
		' Iterate through rows and columns to read data
		For Each row In worksheet.Rows
			For Each cell In row
				Console.Write(cell.Value & vbTab)
			Next cell
			Console.WriteLine()
		Next row
	End Sub
End Class
$vbLabelText   $csharpLabel

En primer lugar, incluimos los espacios de nombres necesarios. Las clases y métodos ofrecidos por la biblioteca IronXL están contenidos en el espacio de nombres de IronXL. Se especifica la ruta al archivo Excel que deseamos leer (sample.xlsx). WorkBook se utiliza para cargar el archivo de Excel. El libro de Excel está representado por un objeto WorkBook que es devuelto por la función Load(). Usando el libro de trabajo, podemos acceder a la primera hoja de cálculo usando workbook.WorkSheets[0]. Utilizando bucles foreach anidados, recorremos las filas y columnas de la hoja de cálculo. Enviamos el valor de cada celda a la consola.

Cómo usar C# para convertir PowerPoint a imagen: Figura 7 - Salida de consola.

Para obtener más información sobre el código, consulta los Ejemplos de IronXL para Leer Excel.

Conclusión

En muchas aplicaciones de software, es necesario convertir presentaciones de PowerPoint a fotos utilizando C#. Utilizando o no el espacio de nombres Microsoft.Office.Interop.PowerPoint, el procedimiento puede completarse con bastante rapidez. Los ejemplos de código de este artículo le ayudarán a incluir la capacidad de conversión de PowerPoint a imágenes en sus aplicaciones C# con facilidad, creando una plétora de oportunidades para la distribución y modificación de la información.

Sin necesidad de que Excel esté instalado en la máquina de destino o depender de la biblioteca Interop, IronXL proporciona una manera rápida y efectiva de ejecutar operaciones de Excel en C#. Los desarrolladores que utilicen IronXL para tratar datos de Excel en sus aplicaciones C# lo encontrarán útil, ya que agiliza operaciones como la lectura, escritura y modificación de archivos de Excel gracias a su API de fácil uso y a su amplio conjunto de funciones. IronXL ofrece una solución fiable que aumenta la eficacia y la adaptabilidad en los proyectos de desarrollo relacionados con Excel, independientemente de si está creando informes, manejando datos o automatizando tareas de hojas de cálculo.

Una prueba gratuita de IronXL está disponible, que incluye características extensas y soporte. Visite la Información de Licencias de IronXL para obtener información completa y actual sobre licencias. Visite el sitio web de Iron Software para obtener más información sobre los productos de Iron Software.

Regan Pun
Ingeniero de software
Regan se licenció en Ingeniería Electrónica por la Universidad de Reading. Antes de incorporarse a Iron Software, sus anteriores puestos de trabajo le obligaban a centrarse en tareas concretas; lo que más le gusta de Iron Software es la variedad de tareas que puede realizar, ya sea añadiendo valor a las ventas, el soporte técnico, el desarrollo de productos o el marketing. Le gusta entender cómo utilizan los desarrolladores la biblioteca de Iron Software y utilizar ese conocimiento para mejorar continuamente la documentación y desarrollar los productos.
< ANTERIOR
Cómo utilizar C# para crear una presentación de PowerPoint

¿Listo para empezar? Versión: 2025.3 acaba de salir

Ver licencias >