Quali sono alcune tecniche per generare presentazioni di PowerPoint senza usare Office Automation?
-
05-07-2019 - |
Domanda
Sebbene sia possibile generare presentazioni di PowerPoint automaticamente utilizzando Office Automation , questo è non raccomandato per l'uso su un server . Come puoi generare una presentazione di PowerPoint senza usare Office Automation?
Soluzione
Un'altra opzione che non è stata menzionata, che è stata la strada che alla fine abbiamo preso, è quella di utilizzare Open XML formati di file supportati ingenuamente in Office 2007 e in Office XP tramite un pacchetto di compatibilità . Utilizzo di Open XML SDK 1.0 far funzionare qualcosa si è rivelato sorprendentemente semplice.
Innanzitutto, è stato preparato un file modello generico con token messi al posto del contenuto che avrebbe dovuto essere sostituito. Successivamente, è necessario aggiungere al progetto un riferimento a DocumentFormat.OpenXml. Il codice stesso farà riferimento agli spazi dei nomi DocumentFormat.OpenXml e DocumentFormat.OpenXml.Packaging. Infine, il codice per scorrere le diapositive è simile al seguente:
// 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();
Altri suggerimenti
È possibile scrivere del codice lato server che utilizza una libreria in grado di generare documenti in formato PowerPoint. Ad esempio, in Java è possibile utilizzare Apache POI-HSLF per generare file PPT in modo programmatico.
A seconda di ciò che devi fare, potrebbe essere meno complicato iniziare con un file PPT "modello" e modificarlo a livello di codice per inserire o modificare il contenuto.
Se la tua tecnologia lato server è ASP.NET, puoi utilizzare Aspose.Slides . È abbastanza potente e funziona bene, anche se potrebbe non essere una soluzione economica, a seconda di cosa vuoi fare.