Wie man Präsentationen in Java erstellt
Aspose.Slides FOSS for Java ermöglicht das Erstellen von PowerPoint-Präsentationen vollständig in Java ohne Abhängigkeit von Microsoft Office. Dieser Leitfaden zeigt, wie man eine neue Präsentation erstellt, Folien und Formen hinzufügt, Text formatiert und das Ergebnis speichert.
Schritt-für-Schritt-Anleitung
Schritt 1: Maven-Abhängigkeit hinzufügen
Fügen Sie Aspose.Slides FOSS zu Ihrem pom.xml hinzu. Java 21 oder höher ist erforderlich.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Installation überprüfen:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Schritt 2: Erforderliche Klassen importieren
Importieren Sie die Presentation Klasse und das SaveFormat Enum, das zum Speichern benötigt wird.
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;Alle shape-type Konstanten befinden sich in org.aspose.slides.foss.ShapeType. Formatting-Enums (FillType, NullableBool) sind ebenfalls in org.aspose.slides.foss.
Schritt 3: Präsentation erstellen
Verwenden Sie new Presentation() und wickeln Sie es in try-with-resources ein. Eine neue Präsentation beginnt mit einer leeren Folie.
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);
}Wichtig: Verwenden Sie immer try-with-resources oder rufen Sie prs.dispose() in einem finally-Block auf. Ressourcen werden sonst nicht korrekt freigegeben.
Schritt 4: Auf eine Folie zugreifen
Die erste Folie hat den Index 0. Eine leere Präsentation hat genau eine Folie.
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);
}Schritt 5: Form hinzufügen
Verwenden Sie slide.getShapes().addAutoShape(), um eine AutoShape hinzuzufügen. Die Parameter sind (shapeType, x, y, width, height), alle in Punkten (1 Punkt = 1/72 Zoll; Standardfolie ist 720 × 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);
}Schritt 6: Präsentation speichern
Rufen Sie prs.save(path, SaveFormat.PPTX) auf, bevor der try‑Block beendet wird. PPTX ist das einzige unterstützte Ausgabeformat.
prs.save("result.pptx", SaveFormat.PPTX);Die Datei wird atomar geschrieben; tritt ein Fehler vor diesem Aufruf auf, wird keine Ausgabedatei erstellt.
Vollständiges funktionierendes Beispiel
Das folgende Programm erstellt eine Präsentation mit zwei Folien, wobei die erste Folie eine Titelform enthält und die zweite Folie eine Tabelle.
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");
}
}Allgemeine Probleme und Lösungen
IllegalStateException: Presentation already disposed
Sie rufen Methoden auf einem Presentation‑Objekt auf, nachdem der try‑with‑resources‑Block verlassen wurde. Halten Sie immer alle Arbeiten innerhalb des try‑Blocks.
UnsupportedOperationException beim Speichern
Dies tritt auf, wenn versucht wird, ein anderes Speicherformat als PPTX zu verwenden, oder wenn eine nicht unterstützte Funktion (wie Diagramme oder Animationen) verwendet wird.
Form erscheint außerhalb des sichtbaren Folienbereichs
Folien haben standardmäßig 720 × 540 Punkte. Behalte x + width <= 720 und y + height <= 540.
Häufig gestellte Fragen
Was ist die Standardfoliengröße?
Ein neuer Presentation() erstellt Folien in der Standardgröße von 10 × 7,5 Zoll (720 × 540 Punkt). Das Ändern der Foliengröße wird in dieser Ausgabe noch nicht unterstützt.
Kann ich mehr als eine Folie hinzufügen?
Ja. Rufen Sie prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) auf, um eine leere Folie hinzuzufügen und über den Index darauf zuzugreifen:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Kann ich eine bestehende Datei öffnen und Folien hinzufügen?
Ja:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}In welche Formate kann ich speichern?
Nur SaveFormat.PPTX wird unterstützt. Der Export nach PDF, HTML, SVG oder Bildern ist in dieser Ausgabe nicht verfügbar.