Como criar apresentações em Java

Como criar apresentações em Java

Aspose.Slides FOSS for Java lets you create PowerPoint presentations entirely in Java with no dependency on Microsoft Office. This guide shows how to create a new presentation, add slides and shapes, format text, and save the result.

Guia passo a passo

Passo 1: Adicionar a dependência Maven

Adicione Aspose.Slides FOSS ao seu pom.xml.É necessário o Java 21 ou posterior.

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Verificar a instalação:

import org.aspose.slides.foss.Presentation;

Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");

Passo 2: Importar as classes necessárias

Importar o Presentation classe e o número de pessoas que se encontram na SaveFormat É necessário para salvar.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;

Todas as constantes de tipo-forma vivem em: org.aspose.slides.foss.ShapeType.Formato de enums (FillType, NullableBool) também são considerados como uma das principais causas de org.aspose.slides.foss.


Passo 3: Faça uma apresentação

Utilização: new Presentation() Uma nova apresentação começa com um slide em branco.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    System.out.println("Slides in new presentation: " + prs.getSlides().size());
    prs.save("output.pptx", SaveFormat.PPTX);
}

Importante: Sempre use recursos de teste ou telefone. prs.dispose() Os recursos não serão liberados corretamente de outra forma.


Passo 4: Acesse um slide

O primeiro slide está no índice 0. Uma apresentação em branco tem exatamente um slides.

try (Presentation prs = new Presentation()) {
    ISlideCollection slides = prs.getSlides();
    ISlide slide = slides.get(0);
    System.out.println("Slide at index 0: " + slide);
    prs.save("output.pptx", SaveFormat.PPTX);
}

Passo 5: Adicionar uma forma

Utilização: slide.getShapes().addAutoShape() Para adicionar um AutoShape. Os parâmetros são: (shapeType, x, y, width, height) todos em pontos (1 ponto = 1/72 polegada; o slide padrão é 720 x 540 pt).

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation()) {
    ISlideCollection slides = prs.getSlides();
    ISlide slide = slides.get(0);

    // Rectangle at (50, 50) with 400 wide and 120 tall
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 400, 120
    );

    // Attach a text frame
    shape.addTextFrame("Hello from Aspose.Slides FOSS!");

    prs.save("with-shape.pptx", SaveFormat.PPTX);
}

Passo 6: Salve a apresentação

Chama-me . prs.save(path, SaveFormat.PPTX) O PPTX é o único formato de saída suportado.

prs.save("result.pptx", SaveFormat.PPTX);

O arquivo é escrito atomicamente; se um erro ocorrer antes desta chamada, nenhum arquivos de saída são criados.


Exemplo de trabalho completo

O programa a seguir cria uma apresentação de dois slides com um título no primeiro e uma tabela no segundo.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ITable;
import org.aspose.slides.foss.ILayoutSlide;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

public class CreatePresentation {
    public static void main(String[] args) {
        try (Presentation prs = new Presentation()) {
            // --- Slide 1: title shape ---
            ISlideCollection slides = prs.getSlides();
            ISlide slide1 = slides.get(0);
            IAutoShape title = slide1.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 40, 40, 640, 80
            );
            ITextFrame tf = title.addTextFrame("Q1 Results: Executive Summary");
            IPortionFormat fmt = tf.getParagraphs().get(0)
                .getPortions().get(0).getPortionFormat();
            fmt.setFontHeight(32);
            fmt.setFontBold(NullableBool.TRUE);
            fmt.getFillFormat().setFillType(FillType.SOLID);
            fmt.getFillFormat().getSolidFillColor().setColor(
                Color.fromArgb(255, 0, 70, 127)
            );

            // --- Slide 2: table ---
            prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
            ISlideCollection slides = prs.getSlides();
            ISlide slide2 = slides.get(1);
            ITable table = slide2.getShapes().addTable(
                40, 40,
                new double[]{200.0, 120.0, 120.0},
                new double[]{40.0, 40.0, 40.0}
            );
            String[] headers = {"Region", "Revenue", "Growth"};
            String[][] data = {
                {"North", "$1.2M", "+8%"},
                {"South", "$0.9M", "+4%"},
            };
            for (int col = 0; col < headers.length; col++) {
                table.getRows().get(0).get(col).getTextFrame().setText(headers[col]);
            }
            for (int row = 0; row < data.length; row++) {
                for (int col = 0; col < data[row].length; col++) {
                    table.getRows().get(row + 1).get(col)
                        .getTextFrame().setText(data[row][col]);
                }
            }

            prs.save("q1-results.pptx", SaveFormat.PPTX);
        }
        System.out.println("Saved q1-results.pptx");
    }
}

Problemas comuns e soluções

IllegalStateException: Presentation already disposed

Você está chamando métodos em um Presentation Objeto após o bloco de tentar-com-recursos ter saído. Sempre mantenha todo o trabalho dentro do blocos de tentativa.

UnsupportedOperationException quando se poupa

Isso ocorre quando se tenta um formato de armazenamento diferente do PPTX, ou ao usar uma funcionalidade não suportada (como gráficos ou animações).

Forma aparece fora da área de deslizamento visível

Os slides são 720 x 540 pontos por padrão. x + width <= 720 e a) y + height <= 540.


Perguntas Frequentes

Qual é o tamanho padrão da diapositiva?

Um novo Presentation() cria slides com tamanho padrão de 10 x 7,5 polegadas (720 x 540 pontos). O cambio do tamanhos das slide ainda nao e suportado nesta edicao.

Posso adicionar mais de um slide?

Sim, liga. prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) para anexar um slide em branco e aceder a ele por índice:

prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlideCollection slides = prs.getSlides();
ISlide slide2 = slides.get(1);

Posso abrir um arquivo existente e adicionar slides?

  • Sim , sim .:
try (Presentation prs = new Presentation("existing.pptx")) {
    prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
    prs.save("existing.pptx", SaveFormat.PPTX);
}

Em que formatos posso salvar?

Apenas: SaveFormat.PPTX A exportação para PDF, HTML, SVG ou imagens não está disponível nesta edição.


Ver também:

 Português