Convertir presentaciones PowerPoint a documentos Word en .NET

Descripción general

Este artículo ofrece una solución para desarrolladores sobre la conversión de presentaciones PowerPoint y OpenDocument a documentos Word utilizando Aspose.Slides for .NET y Aspose.Words for .NET. La guía paso a paso le acompaña en cada etapa del proceso de conversión.

Convertir una presentación a un documento Word

Siga las instrucciones a continuación para convertir una presentación PowerPoint o OpenDocument a un documento Word:

  1. Instanciar la clase Presentation y cargar un archivo de presentación.
  2. Instanciar las clases Document y DocumentBuilder para generar un documento Word.
  3. Establecer el tamaño de página del documento Word para que coincida con el de la presentación mediante la propiedad DocumentBuilder.PageSetup.
  4. Establecer los márgenes en el documento Word mediante la propiedad DocumentBuilder.PageSetup.
  5. Recorrer todas las diapositivas de la presentación mediante la propiedad Presentation.Slides.
    • Generar una imagen de la diapositiva usando el método GetImage de la interfaz ISlide y guardarla en un flujo de memoria.
    • Añadir la imagen de la diapositiva al documento Word usando el método InsertImage de la clase DocumentBuilder.
  6. Guardar el documento Word en un archivo.

Supongamos que tenemos una presentación “sample.pptx” que tiene el siguiente aspecto:

PowerPoint presentation

El siguiente ejemplo de código C# muestra cómo convertir la presentación PowerPoint a un documento Word:

// Cargar un archivo de presentación.
using var presentation = new Presentation("sample.pptx");

// Crear objetos Document y DocumentBuilder.
var document = new Document();
var builder = new DocumentBuilder(document);

// Establecer el tamaño de página en el documento Word.
var slideSize = presentation.SlideSize.Size;
builder.PageSetup.PageWidth = slideSize.Width;
builder.PageSetup.PageHeight = slideSize.Height;

// Establecer márgenes en el documento Word.
builder.PageSetup.LeftMargin = 0;
builder.PageSetup.RightMargin = 0;
builder.PageSetup.TopMargin = 0;
builder.PageSetup.BottomMargin = 0;

const float scaleX = 2, scaleY = 2;

// Recorrer todas las diapositivas de la presentación.
foreach (var slide in presentation.Slides)
{
    // Generar una imagen de diapositiva y guardarla en un flujo de memoria.
    using var image = slide.GetImage(scaleX, scaleY);
    using var imageStream = new MemoryStream();
    image.Save(imageStream, ImageFormat.Png);

    // Añadir la imagen de la diapositiva al documento Word.
    imageStream.Seek(0, SeekOrigin.Begin);
    builder.InsertImage(imageStream.ToArray(), builder.PageSetup.PageWidth, builder.PageSetup.PageHeight);

    builder.InsertBreak(BreakType.PageBreak);
}

// Guardar el documento Word en un archivo.
document.Save("output.docx");

El resultado:

Word document

FAQ

¿Qué componentes deben instalarse para convertir presentaciones PowerPoint y OpenDocument a documentos Word?

Solo es necesario agregar los paquetes NuGet correspondientes para Aspose.Slides for .NET y Aspose.Words for .NET a su proyecto C#. Ambas bibliotecas funcionan como API independientes y no se requiere que Microsoft Office esté instalado.

¿Se admiten todos los formatos de presentación PowerPoint y OpenDocument?

Aspose.Slides for .NET soporta todos los formatos de presentación, incluidos PPT, PPTX, ODP y otros tipos de archivo comunes. Esto asegura que pueda trabajar con presentaciones creadas en diversas versiones de Microsoft PowerPoint.