Создание файла PowerPoint 2007/2010 с использованием Java - PullRequest
18 голосов
/ 28 января 2010

Кто-нибудь знает какой-либо API (коммерческий или с открытым исходным кодом), который может создавать / редактировать презентации PowerPoint 2007/2010 через Java. У меня есть шаблон в формате PowerPoint 2007/2010, который мне требуется для редактирования / обновления. До сих пор я конвертировал файл .pptx в xml, а затем редактировал и сохранял его как .pptx. Но файл открывается при открытии.

Кто-нибудь знает о каком-либо другом методе или API, которые делают это в Java?

Ответы [ 5 ]

11 голосов
/ 04 августа 2010

Мы сделали это программно (закрытый источник на данный момент, извините), поэтому могли бы помочь, но остерегайтесь нескольких ошибок.

Во-первых, проект POI (по крайней мере, когда мы его рассматривали в прошлом году) был довольно незавершенным. Он не работал с диаграммами PPTX - это та особенность, которую мы хотели. Infact сайт POI, возможно, не обновлен, но он, кажется, не поддерживает формат PowerPoint 20087 (http://poi.apache.org/slideshow/index.html). Все рекомендуют этот проект, но наша оценка состояла в том, что он был довольно бесполезен для генерации файлов PowerPoint 2007 через Java . Ваш пробег может варьироваться.

У Apose также были некоторые существенные ограничения, когда мы смотрели на это; не делать графики в PowerPoint 2007, что является для нас проблемой блокировки.

Другая проблема заключается в том, что PowerPoint 2007 может быть довольно глючным. У нас было несколько программно созданных файлов PPT, которые вызывали блокировки, но при тестировании мы обнаружили, что мы можем воспроизводить сбои и блокировки с помощью простых документов PPTX, созданных в PowerPoint 2007, т.е. не нашего кода.

В итоге мы сделали следующее: распаковали файл PowerPoint «шаблона» в папку, затем по требованию заполнили шаблон XML новыми значениями, заархивировали его, переименовали различные элементы и доставили его пользователю как действительный PPTX. Работает нормально, кроме странного сбоя PowerPoint, когда люди редактируют файл. Если бы существовал рынок для этого, я думаю, мы могли бы упаковать код в виде веб-сервиса (т.е. xml / csv -> PPTX) или собрать коммерческий пакет, но мы бы не сделали это бесплатно.

7 голосов
/ 10 июля 2010

docx4j (лицензия apache) теперь включает компонент pptx4j, который может открывать / редактировать / сохранять документы pptx.

5 голосов
/ 28 января 2010

Да. Проверьте это http://poi.apache.org/,, они только что выпустили версию 3.6, которая теперь поддерживает документы формата Office 2007. Самое приятное, что это бесплатно!

0 голосов
/ 03 февраля 2019

Другое решение, которое может работать для вас, - Windward Reports (отказ от ответственности, я там являюсь основателем и генеральным директором). Он использует PPTX в качестве одного из поддерживаемых форматов шаблонов и объединяет данные для последующего генерирования вывода PPTX (или PDF и т. Д.).

Если нужное вам редактирование / обновление можно обработать с помощью тегов данных в Windward, это должно быть тривиально для вас. Если то, что вам нужно, не может быть обработано тегами, тогда это не сработает для вас.

0 голосов
/ 30 сентября 2017

Для создания презентации PowerPoint из файла шаблона вы можете использовать Шаблоны PPT .

Эта библиотека предоставляет свободный API для замены переменных внутри шаблона PPT:

try(FileOutputStream out = new FileOutputStream("generated.pptx")) {
  new PptMapper()
    .text("variable", "Hello")
    .text("other_variable", "World!")
    .processTemplate(PptTemplateDemo.class.getResourceAsStream("/title.pptx"))
    .write(out);
}

С помощью этой библиотеки вы можете обрабатывать текст и изображения в шаблоне.

...