Apache POI XSLF
API Java de código aberto para apresentações PPTX
Crie, edite e mescle apresentações OOXML do Microsoft PowerPoint por meio da biblioteca Java.
Apache POI XLSF é uma implementação Java para leitura, criação ou edição de arquivos PowerPoint PPTX. Ele fornece a funcionalidade necessária para trabalhar com o formato de arquivo OOXML do PowerPoint 2007, permitindo que os desenvolvedores extraiam dados como texto, imagens, objetos incorporados e muito mais de apresentações do PowerPoint PPTX. Os desenvolvedores também podem adicionar formas a um slide, gerenciar hiperlinks e imagens, adicionar vídeos e converter PPTX para SVG.
Introdução ao Apache POI XLSF
Antes de tudo, você precisa ter o Java Development Kit (JDK) instalado em seu sistema. Se você já o possui, vá para a página download do POI do Apache para obter a versão estável mais recente em um arquivo. Extraia o conteúdo do arquivo ZIP em qualquer diretório de onde as bibliotecas necessárias possam ser vinculadas ao seu programa Java. Isso é tudo!
Fazer referência ao Apache POI em seu projeto Java baseado em Maven é ainda mais simples. Tudo que você precisa é adicionar a seguinte dependência em seu pom.xml e deixar seu IDE buscar e referenciar os arquivos Apache POI Jar.
Dependência do 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>
API Java para criar novas apresentações e anexar slide ao arquivo existente
O Apache POI XLSF permite que os programadores de computador criem novas apresentações do PowerPoint no formato de arquivo PPTX a partir do zero. Os desenvolvedores também podem transformar uma apresentação existente de acordo com suas necessidades. Ele fornece a capacidade de ler e modificar as apresentações existentes, bem como anexar slides à apresentação existente de acordo com suas necessidades.
Criar apresentação e adicionar slide - 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);
Criar novo slide a partir de um layout de slide predefinido em aplicativos Java
A API Apache POI XLSF inclui suporte para adicionar novos slides de um layout de slide predefinido dentro da apresentação PPTX. Layouts de slide contêm caixas de formatação, posicionamento e espaço reservado para todo o conteúdo que aparece em um slide. As apresentações do PowerPoint têm vários layouts de slides; em primeiro lugar, você precisa ver quais layouts de slide estão disponíveis para uso. Existem diferentes slides mestres e em cada slide mestre, existem vários layouts de slides.
Slide de layout de título - 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();
Mesclar várias apresentações PPTX usando Java
Você tem várias apresentações PPTX que deseja combinar em uma apresentação? As APIs Apache POI XLSF certamente podem ajudá-lo e permitem que os desenvolvedores Java mesclem seus vários arquivos PPTX.
Mesclar os slides da apresentação - 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();