Подтвердить что ты не робот

Создайте файл PowerPoint 2007/2010 с помощью Java

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

Чтобы создать презентацию PowerPoint из файла шаблона, вы можете использовать PPT Templates.

Эта библиотека предоставляет свободный 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);
}

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

Ответ 5

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

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