Хотя можно автоматически создавать презентации PowerPoint с помощью Office Automation, это не рекомендуется для использования на сервере. Как вы можете создать презентацию PowerPoint без использования Office Automation?
Каковы методы создания презентаций PowerPoint без использования Office Automation?
Ответы (3)
Другой вариант, о котором не упоминали, и который мы в конечном итоге выбрали, - это использовать Open XML, которые наивно поддерживаются в Office 2007 и Office XP через пакет совместимости. Использование Open XML SDK 1.0 Заставить что-то работать оказалось на удивление просто.
Сначала был подготовлен общий файл шаблона, в котором вместо содержимого, которое необходимо было заменить, были добавлены токены. Затем в проект нужно добавить ссылку на DocumentFormat.OpenXml. Сам код будет ссылаться на пространства имен DocumentFormat.OpenXml и DocumentFormat.OpenXml.Packaging. Наконец, код для циклического просмотра слайдов выглядит следующим образом:
// 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();
Вы можете написать код на стороне сервера, который использует библиотеку, которая может генерировать документы в формате PowerPoint. Например, в Java вы можете использовать Apache POI-HSLF для программного создания файлов PPT.
В зависимости от того, что вам нужно сделать, может быть проще начать с «шаблонного» PPT-файла и программно изменить его для вставки или редактирования содержимого.
Если ваша серверная технология - ASP.NET, вы можете использовать Aspose.Slides. Он довольно мощный и хорошо работает, хотя, возможно, это не рентабельное решение, в зависимости от того, что вы хотите сделать.