Sådan opretter du præsentationer i Java
Aspose.Slides FOSS for Java giver dig mulighed for at oprette PowerPoint‑præsentationer udelukkende i Java uden afhængighed af Microsoft Office. Denne vejledning viser, hvordan du opretter en ny præsentation, tilføjer slides og former, formaterer tekst og gemmer resultatet.
Trin-for-trin guide
Trin 1: Tilføj Maven-afhængigheden
Tilføj Aspose.Slides FOSS til din pom.xml. Java 21 eller senere er påkrævet.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Bekræft installationen:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Trin 2: Importer de nødvendige klasser
Importér Presentation-klassen og SaveFormat-enum’en, der er nødvendig for at gemme.
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 konstanter findes i org.aspose.slides.foss.ShapeType. Formaterings-enums (FillType, NullableBool) er også i org.aspose.slides.foss.
Trin 3: Opret en præsentation
Brug new Presentation() og pak den ind i try-with-resources. En ny præsentation starter med ét tomt slide.
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);
}Vigtigt: Brug altid try-with-resources eller kald prs.dispose() i en finally-blok. Ressourcer frigives ellers ikke korrekt.
Trin 4: Få adgang til et dias
Den første slide er på indeks 0. En tom præsentation har præcis ét slide.
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);
}Trin 5: Tilføj en form
Brug slide.getShapes().addAutoShape() til at tilføje en AutoShape. Parametrene er (shapeType, x, y, width, height) alle i punkter (1 punkt = 1/72 tomme; standard slide er 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);
}Trin 6: Gem præsentationen
Kald prs.save(path, SaveFormat.PPTX) før try‑blokken afslutter. PPTX er det eneste understøttede outputformat.
prs.save("result.pptx", SaveFormat.PPTX);Filen skrives atomisk; hvis der opstår en fejl før dette kald, oprettes der ingen outputfil.
Komplet arbejdseksempel
Det følgende program opretter en præsentation med to dias med en titelform på det første dias og en tabel på det andet.
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");
}
}Almindelige problemer og løsninger
IllegalStateException: Presentation already disposed
Du kalder metoder på et Presentation-objekt efter, at try‑with‑resources‑blokken er afsluttet. Hold altid alt arbejde inden for try‑blokken.
UnsupportedOperationException ved lagring
Dette sker, når du forsøger at gemme i et andet format end PPTX, eller når du bruger en ikke‑understøttet funktion (såsom diagrammer eller animationer).
Formen vises uden for det synlige slide-området
Slides er 720 × 540 punkter som standard. Behold x + width <= 720 og y + height <= 540.
Ofte stillede spørgsmål
Hvad er standardstørrelsen på sliden?
En ny Presentation() opretter dias i den standard 10 x 7,5 tommer (720 x 540 punkt) størrelse. Ændring af diasstørrelsen understøttes endnu ikke i denne udgave.
Kan jeg tilføje mere end ét slide?
Ja. Kald prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) for at tilføje et tomt slide og få adgang til det via indeks:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Kan jeg åbne en eksisterende fil og tilføje slides?
Ja:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Hvilke formater kan jeg gemme til?
Kun SaveFormat.PPTX understøttes. Eksport til PDF, HTML, SVG eller billeder er ikke tilgængelig i denne udgave.