Apache POI XSLF
Java API с открытым исходным кодом для презентаций PPTX
Создавайте, редактируйте и объединяйте презентации Microsoft PowerPoint OOXML с помощью библиотеки Java.
Apache POI XLSF — это реализация Java для чтения, создания или редактирования файлов PowerPoint PPTX. Он предоставляет необходимые функции для работы с форматом файлов PowerPoint 2007 OOXML, позволяя разработчикам извлекать данные, такие как текст, изображения, встроенные объекты и многое другое, из презентаций PowerPoint PPTX. Разработчики также могут добавлять на слайд фигуры, управлять гиперссылками и изображениями, добавлять видео и преобразовывать PPTX в SVG.
Начало работы с Apache POI XLSF
Прежде всего, в вашей системе должен быть установлен Java Development Kit (JDK). Если он у вас уже есть, перейдите на страницу загрузки Apache POI, чтобы получить последнюю стабильную версию в архиве. Извлеките содержимое ZIP-файла в любой каталог, откуда необходимые библиотеки могут быть связаны с вашей программой Java. Это все!
Ссылка на Apache POI в вашем Java-проекте на основе Maven еще проще. Все, что вам нужно, это добавить следующую зависимость в ваш pom.xml и позволить вашей среде IDE извлекать и ссылаться на файлы Jar Apache POI.
Зависимость Apache POI от Maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
Java API для создания новых презентаций и добавления слайдов в существующий файл
Apache POI XLSF позволяет программистам создавать новые презентации PowerPoint в формате файла PPTX с нуля. Разработчики также могут преобразовать существующую презентацию в соответствии со своими потребностями. Он предоставляет возможность читать и изменять существующие презентации, а также добавлять слайды к существующей презентации в соответствии с их потребностями.
Создать презентацию и добавить слайд — Java
// create a new PPTX file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slide.pptx"));
// create a new slide show
XMLSlideShow xmlSlideShow = new XMLSlideShow();
// save file
xmlSlideShow.write(fileOutputStream);
Создайте новый слайд из предопределенного макета слайда в приложениях Java
API Apache POI XLSF включает поддержку добавления новых слайдов из предопределенного макета слайдов внутри презентации PPTX. Макеты слайдов содержат поля форматирования, расположения и заполнители для всего содержимого, отображаемого на слайде. Презентации PowerPoint имеют несколько макетов слайдов; в первую очередь нужно посмотреть, какие макеты слайдов доступны для использования. Существуют разные образцы слайдов, и в каждом образце слайдов есть несколько макетов слайдов.
Слайд с макетом заголовка — Java
// create a new PPTX file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slidelayout.pptx"));
// create a new slide show
XMLSlideShow xmlSlideShow = new XMLSlideShow();
// initialize slide master object
XSLFSlideMaster xslfSlideMaster = xmlSlideShow.getSlideMasters().get(0);
// set Title layout
XSLFSlideLayout xslfSlideLayout = xslfSlideMaster.getLayout(SlideLayout.TITLE);
// create a new slide with title layout
XSLFSlide xslfSlide = xmlSlideShow.createSlide(xslfSlideLayout);
// select place holder
XSLFTextShape xslfTextShape = xslfSlide.getPlaceholder(0);
// set title
xslfTextShape.setText("Test");
// save file
xmlSlideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();
Объединение нескольких презентаций PPTX с помощью Java
У вас есть несколько презентаций PPTX, которые вы хотите объединить в одну презентацию? API-интерфейсы Apache POI XLSF, безусловно, могут помочь вам и позволяют разработчикам Java объединять свои несколько файлов PPTX.
Объединить слайды презентации — Java
// create a new PPTX file
FileOutputStream fileOutputStream = new FileOutputStream("MergegSlide.pptx");
// select two PPTX files
String[] inputFiles = {"Slide.pptx", "SlideLayout.pptx"};
// create a new slide show
XMLSlideShow slideShow = new XMLSlideShow();
// merge slides
for(String file : inputFiles){
FileInputStream inputstream = new FileInputStream(file);
XMLSlideShow xmlSlideShow = new XMLSlideShow(inputstream);
for(XSLFSlide srcSlide : xmlSlideShow.getSlides()) {
slideShow.createSlide().importContent(srcSlide);
}
}
// saving file
slideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();