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.

FormatoExtensãoEscrever
PPTX.pptxSim
PPTM.pptmSim
PPSX.ppsxSim
PPSM.ppsmSim
POTX.potxSim
POTM.potmSim
ODP.odpSim
OTP.otpSim
FODP.fodpSim
PPT.pptSim
PPS.ppsSim
POT.potSim
PDF.pdfSim
XPS.xpsSim
HTML.htmlSim
HTML5.htmlSim
SVG.svgSim
TIFF.tiffSim
PNG.pngSim
JPEG.jpegSim
BMP.bmpSim
GIF.gifSim
MD.mdSim

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: