Come creare presentazioni in Java
Aspose.Slides FOSS for Java ti consente di creare presentazioni PowerPoint interamente in Java senza dipendere da Microsoft Office. Questa guida mostra come creare una nuova presentazione, aggiungere diapositive e forme, formattare il testo e salvare il risultato.
Guida passo-passo
Passo 1: Aggiungi la dipendenza Maven
Aggiungi Aspose.Slides FOSS al tuo pom.xml. È richiesto Java 21 o versioni successive.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Verifica l’installazione:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Passo 2: Importa le classi richieste
Importa la classe Presentation e l’enum SaveFormat necessari per il salvataggio.
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;Tutte le costanti di tipo forma si trovano in org.aspose.slides.foss.ShapeType. Gli enum di formattazione (FillType, NullableBool) sono anch’essi in org.aspose.slides.foss.
Passo 3: Crea una presentazione
Usa new Presentation() e incapsularlo in try-with-resources. Una nuova presentazione inizia con una diapositiva vuota.
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: Usa sempre try-with-resources o chiama prs.dispose() in un blocco finally. Le risorse non verranno rilasciate correttamente altrimenti.
Passo 4: Accedi a una diapositiva
La prima diapositiva è all’indice 0. Una presentazione vuota ha esattamente una diapositiva.
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0); // zero-based index
System.out.println("Slide at index 0: " + slide);
prs.save("output.pptx", SaveFormat.PPTX);
}Passo 5: Aggiungi una forma
Usa slide.getShapes().addAutoShape() per aggiungere un’AutoShape. I parametri sono (shapeType, x, y, width, height) tutti in punti (1 punto = 1/72 di pollice; la diapositiva standard è 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()) {
ISlide slide = prs.getSlides().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: Salva la presentazione
Chiama prs.save(path, SaveFormat.PPTX) prima che il blocco try termini. PPTX è l’unico formato di output supportato.
prs.save("result.pptx", SaveFormat.PPTX);Il file viene scritto in modo atomico; se si verifica un errore prima di questa chiamata, non viene creato alcun file di output.
Esempio completo funzionante
Il programma seguente crea una presentazione a due diapositive con una forma titolo nella prima diapositiva e una tabella nella seconda.
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 ---
ISlide slide1 = prs.getSlides().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));
ISlide slide2 = prs.getSlides().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");
}
}Problemi comuni e soluzioni
IllegalStateException: Presentation already disposed
Stai chiamando metodi su un oggetto Presentation dopo che il blocco try-with-resources è uscito. Mantieni sempre tutto il lavoro all’interno del blocco try.
UnsupportedOperationException durante il salvataggio
Ciò si verifica quando si tenta di salvare in un formato diverso da PPTX, o quando si utilizza una funzionalità non supportata (come grafici o animazioni).
La forma appare al di fuori dell’area visibile della diapositiva
Le diapositive sono 720 × 540 punti per impostazione predefinita. Mantieni x + width <= 720 e y + height <= 540.
Domande Frequenti
Qual è la dimensione predefinita della diapositiva?
Una nuova Presentation() crea diapositive nella dimensione standard di 10 × 7,5 pollici (720 × 540 punti). Cambiare la dimensione della diapositiva non è ancora supportato in questa edizione.
Posso aggiungere più di una diapositiva?
Sì. Chiama prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) per aggiungere una diapositiva vuota e accedervi per indice:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Posso aprire un file esistente e aggiungere diapositive?
Sì:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Quali formati posso salvare?
È supportato solo SaveFormat.PPTX. L’esportazione in PDF, HTML, SVG o immagini non è disponibile in questa edizione.