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.