¿Cuáles son algunas técnicas para generar presentaciones de PowerPoint sin usar Office Automation?

StackOverflow https://stackoverflow.com/questions/825247

Pregunta

Si bien es posible generar presentaciones de PowerPoint automáticamente usando Office Automation , esto es no se recomienda su uso en un servidor . ¿Cómo puede generar una presentación de PowerPoint sin usar la automatización de Office?

¿Fue útil?

Solución

Otra opción que no se mencionó, que fue la ruta que finalmente tomamos, es usar Abrir archivos de XML que se admiten de forma ingenua en Office 2007 y en Office XP a través de un paquete de compatibilidad . Usando el Open XML SDK 1.0 hacer que algo funcione resultó ser sorprendentemente sencillo.

Primero, se preparó un archivo de plantilla genérica con tokens que se colocaron en lugar del contenido que se debería reemplazar. A continuación, se debe agregar una referencia a DocumentFormat.OpenXml al proyecto. El código mismo hará referencia a los espacios de nombres DocumentFormat.OpenXml y DocumentFormat.OpenXml.Packaging. Finalmente, el código para recorrer las diapositivas es similar al siguiente:

// Open the presentation
PresentationDocument presentation = PresentationDocument.Open(fileName, true);
// Loop through all of the slides in the presentation
foreach (SlidePart slide in presentation.PresentationPart.SlideParts)
{
    // Read the XML out of the slide
    XmlDocument xml = new XmlDocument();
    xml.Load(slide.GetStream());

    // TODO: Your XML manipulation code here

    // Save the updated slide
    xml.Save(slide.GetStream());
}
// Save the updated presentation
presentation.Close();

Otros consejos

Podría escribir algún código del lado del servidor que use una biblioteca que pueda generar documentos en formato PowerPoint. Por ejemplo, en Java puede usar Apache POI-HSLF para generar archivos PPT programáticamente.

Dependiendo de lo que necesite hacer, puede ser menos trabajo comenzar con un archivo PPT de "plantilla" y modificarlo mediante programación para insertar o editar contenido.

Si su tecnología de servidor es ASP.NET, puede usar Aspose.Slides . Es bastante potente y funciona bien, aunque podría no ser una solución rentable, dependiendo de lo que quieras hacer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top