Apache POI HSLF
Библиотека Java для форматов файлов презентаций Microsoft® PPT
Добавляйте слайды и изображения в презентации, конвертируйте файлы PPT с помощью бесплатного Java API с открытым исходным кодом.
Что такое Apache POI HSLF?
Apache POI HSLF — это чистая реализация Java для чтения, создания, изменения или рендеринга презентаций PowerPoint. Он предоставляет способ чтения, создания или изменения формата файла PPT презентаций PowerPoint. Он обеспечивает поддержку извлечения данных, таких как текст, изображения, звуки, встроенные объекты и многое другое, из презентаций PowerPoint.
Он также поддерживает рисование фигуры на слайде, добавление гиперссылок, таблиц, изображений, настройку верхних и нижних колонтитулов, создание маркированных списков, извлечение встроенных звуков и многое другое.
Начало работы с Apache POI HSLF
Прежде всего, в вашей системе должен быть установлен 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-scratchpad</artifactId>
<version>4.1.0</version>
</dependency>
Динамически создавать новые PPT или изменять существующие презентации
Apache POI HSLF позволяет программистам создавать новые презентации PowerPoint в форматах файлов PPT. Разработчики также могут преобразовать существующую презентацию в соответствии со своими потребностями. API также поддерживает функции для извлечения данных, таких как текст, изображения, звуки, встроенные объекты и т. д., из презентаций PowerPoint.
Создать файл PPT — Java
// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slide.ppt"));
// create a new slide show
HSLFSlideShow xmlSlideShow = new HSLFSlideShow();
// save file
xmlSlideShow.write(fileOutputStream);
Добавьте слайды, изображения и настройте верхний и нижний колонтитулы в PPT
Разработчики могут легко добавлять новые слайды и изменять существующие в соответствии со своими потребностями внутри презентации PPT с помощью API Apache HSLF. Теперь разработчики могут добавлять в свои презентации настраиваемые верхние и нижние колонтитулы. Он также обеспечивает полную поддержку добавления заголовка к слайду, создания слайда с предопределенным макетом, работы с фоном слайда/фигуры и многого другого.
Вставка изображений в PPT через Java
- Создайте новый файл PPT с помощью FileOutputStream и передайте экземпляр new File() с выходным именем файла в виде строки.
- Добавьте новое слайд-шоу, используя метод HSLFSLideShow().
- Добавьте новый слайд с помощью метода createSlide()
- Получите байты изображения с помощью метода IOUtils.toByteArray() и передайте в него свое изображение с помощью метода FileInputStream()
- Добавьте изображение на слайд с помощью метода hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG). Метод принимает байты изображения и тип изображения в качестве аргументов.
- Записать и сохранить файл
Добавить изображение в PPT — Java
// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("AddImage.ppt"));
// create a new slide show
HSLFSlideShow hslfSlideShow = new HSLFSlideShow();
// create slide
HSLFSlide slide = hslfSlideShow.createSlide();
// load image
byte[] picture = IOUtils.toByteArray(new FileInputStream(new File("apache-poi-logo-min.png")));
// add image
HSLFPictureData hslfPictureData = hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG);
HSLFPictureShape pictureShape = slide.createPicture(hslfPictureData);
// save file
hslfSlideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();
Преобразование слайдов в форматы изображений с помощью Java API
API Apache POI HSLF позволяет разработчикам программного обеспечения преобразовывать каждый слайд презентации PowerPoint в формат файла изображения внутри своих приложений Java. Вы можете захватывать слайды в объект java.awt.Graphics2D (или любой другой) и сериализовать его в формат PNG или JPEG. Поддерживаемые изображения могут быть в формате JPEG, PNG, DIB и т. д.
Преобразование PPT в изображение — Java
//open an existing PPT file
HSLFSlideShow hslfSlideShow = new HSLFSlideShow(new FileInputStream(new File("PPTtoImage.ppt")));
// get dimensions
Dimension pgsize = hslfSlideShow.getPageSize();
java.util.List slide = hslfSlideShow.getSlides();
for (int i = 0; i < slide.size(); i++) {
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
// clear the drawing area
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
// render
slide.get(i).draw(graphics);
// create image
FileOutputStream out = new FileOutputStream("PPTtoImage.png");
javax.imageio.ImageIO.write(img, "png", out);
out.close();
}