Introdução
Aspose.Slides FOSS for Java é uma biblioteca gratuita e de código aberto que permite aos desenvolvedores Java criar e manipular apresentações do PowerPoint sem qualquer dependência do Microsoft Office. A biblioteca é distribuída sob o pacote org.aspose.slides.foss e tem como alvo o Java 21 ou superior.
O projeto é lançado sob a licença MIT, portanto você pode usá‑lo em projetos pessoais e comerciais sem custo e sem necessidade de chave de API. Ele fornece um modelo de objeto rico para slides, formas, texto, tabelas, imagens, comentários e propriedades de documento, suportado por manipulação direta do formato de pacote Office Open XML.
Com 273 classes, mais de 2.600 métodos e 42 enumerações, a API principal cobre os blocos de construção que você precisa para automatizar fluxos de trabalho de apresentação em qualquer aplicação Java.
O que está incluído
Ciclo de Vida da Apresentação
A classe Presentation é o ponto de entrada para cada operação. Você pode criar uma apresentação em branco e salvar o resultado no disco ou em um OutputStream em vários formatos. A classe implementa AutoCloseable, portanto funciona naturalmente com blocos try-with-resources.
import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation pres = new Presentation()) {
// A new presentation starts with one blank slide
System.out.println("Slides: " + pres.getSlides().size());
pres.save("output.pptx", SaveFormat.PPTX);
}
Gerenciamento de Slides
SlideCollection fornece controle total sobre o conjunto de slides. Você pode adicionar slides em branco com addEmptySlide(), duplicar slides existentes com addClone(), inserir slides em um índice específico com insertEmptySlide(), remover slides por referência ou índice e iterar sobre a coleção.
try (Presentation pres = new Presentation()) {
ILayoutSlide layout = pres.getLayoutSlides().get(0);
pres.getSlides().addEmptySlide(layout);
pres.getSlides().addClone(pres.getSlides().get(0));
System.out.println("Total slides: " + pres.getSlides().size());
}
Formas e Autoformas
A classe AutoShape representa o objeto desenhável mais comum em um slide. Você cria formas através de IShapeCollection.addAutoShape(), especificando uma constante ShapeType (como ShapeType.RECTANGLE) e coordenadas de posição. Cada AutoShape expõe um TextFrame para conteúdo de texto e um FillFormat para estilo visual.
try (Presentation pres = new Presentation()) {
ISlide slide = pres.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 300, 100, false);
ITextFrame tf = shape.addTextFrame("Hello from Aspose.Slides FOSS");
System.out.println(tf.getText());
}
Texto e Parágrafos
O texto rico é modelado como uma hierarquia de TextFrame, ParagraphCollection, Paragraph, PortionCollection e Portion objetos. Você pode definir texto simples em um quadro diretamente com TextFrame.setText(), ou criar parágrafos com várias execuções adicionando instâncias individuais de Portion com formatação distinta.
try (Presentation pres = new Presentation()) {
ISlide slide = pres.getSlides().get(0);
IAutoShape shape = slide.getShapes()
.addAutoShape(ShapeType.RECTANGLE, 50, 50, 400, 100, false);
ITextFrame tf = shape.addTextFrame("First run ");
Portion extra = new Portion("second run");
tf.getParagraphs().get(0).getPortions().add(extra);
System.out.println(tf.getText());
}
Propriedades do Documento
A classe DocumentProperties expõe campos de metadados padrão, como título, autor, assunto, palavras‑chave, categoria e carimbos de data/hora. As propriedades são persistidas nas partes de propriedades principais e estendidas do PPTX e sobrevivem a ciclos de salvar/carregar de ida e volta.
try (Presentation pres = new Presentation()) {
IDocumentProperties props = pres.getDocumentProperties();
props.setTitle("Quarterly Report");
props.setAuthor("Engineering Team");
pres.save("report.pptx", SaveFormat.PPTX);
}
Comentários e Anotações
O subsistema de comentários inclui CommentAuthorCollection e CommentCollection. Você pode adicionar autores, anexar comentários a slides e posições específicas e ler de volta as anotações existentes. Os dados de comentários são armazenados nas partes ppt/commentAuthors.xml e ppt/comments/*.xml do pacote PPTX.
Início Rápido
Adicione a dependência Maven ao seu pom.xml:
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>
Em seguida, crie e salve uma apresentação:
import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;
public class QuickStart {
public static void main(String[] args) {
try (Presentation pres = new Presentation()) {
ISlide slide = pres.getSlides().get(0);
// Add a title shape
IAutoShape title = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 30, 600, 60, false);
title.addTextFrame("Aspose.Slides FOSS for Java");
// Add a content shape
IAutoShape body = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 120, 600, 300, false);
body.addTextFrame(
"This presentation was created entirely in Java "
+ "using a free, open-source library.");
pres.save("quick-start.pptx", SaveFormat.PPTX);
}
}
}
Formatos Compatíveis
A enumeração SaveFormat define todos os formatos de saída que a biblioteca pode gravar. A tabela abaixo lista as entradas confirmadas.
| Formato | Extensão | Escrever |
|---|---|---|
| PPTX | .pptx | Sim |
| PPTM | .pptm | Sim |
| PPSX | .ppsx | Sim |
| PPSM | .ppsm | Sim |
| POTX | .potx | Sim |
| POTM | .potm | Sim |
| ODP | .odp | Sim |
| OTP | .otp | Sim |
| FODP | .fodp | Sim |
| PPT | .ppt | Sim |
| PPS | .pps | Sim |
| POT | .pot | Sim |
| Sim | ||
| XPS | .xps | Sim |
| HTML | .html | Sim |
| HTML5 | .html | Sim |
| SVG | .svg | Sim |
| TIFF | .tiff | Sim |
| PNG | .png | Sim |
| JPEG | .jpeg | Sim |
| BMP | .bmp | Sim |
| GIF | .gif | Sim |
| MD | .md | Sim |
Os formatos listados acima são destinos de exportação confirmados definidos no enum SaveFormat.
Código Aberto e Licenciamento
Aspose.Slides FOSS for Java é distribuído sob a licença MIT. O código‑fonte completo está disponível no GitHub em Aspose.Slides-FOSS-for-Java. Você tem liberdade para usar, modificar e redistribuir a biblioteca em qualquer projeto sem royalties ou chaves de licença.
Introdução
Pronto para mergulhar mais fundo? Aqui estão recursos para ajudá‑lo a começar:
- Guia do Desenvolvedor – passos detalhados e tutoriais para cada área de recurso
- Base de Conhecimento – artigos de como fazer e perguntas frequentes
- Referência da API – documentação completa de classes e métodos