Hur man skapar presentationer i Java
Aspose.Slides FOSS for Java låter dig skapa PowerPoint-presentationer helt i Java utan beroende av Microsoft Office. Denna guide visar hur du skapar en ny presentation, lägger till bilder och former, formaterar text och sparar resultatet.
Steg-för-steg-guide
Steg 1: Lägg till Maven‑beroendet
Lägg till Aspose.Slides FOSS i din pom.xml. Java 21 eller senare krävs.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Verifiera installationen:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Steg 2: Importera de nödvändiga klasserna
Importera Presentation-klassen och SaveFormat-enumet som behövs för att spara.
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;Alla shape‑typkonstanter finns i org.aspose.slides.foss.ShapeType. Formateringsenum (FillType, NullableBool) finns också i org.aspose.slides.foss.
Steg 3: Skapa en presentation
Använd new Presentation() och omslut den i try-with-resources. En ny presentation börjar med en tom bild.
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);
}Viktigt: Använd alltid try-with-resources eller anropa prs.dispose() i ett finally‑block. Resurser kommer annars inte att släppas korrekt.
Steg 4: Åtkomst till en bild
Den första bilden är på index 0. En tom presentation har exakt en bild.
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);
}Steg 5: Lägg till en form
Använd slide.getShapes().addAutoShape() för att lägga till en AutoShape. Parametrarna är (shapeType, x, y, width, height) alla i punkter (1 punkt = 1/72 tum; standardbild är 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);
}Steg 6: Spara presentationen
Anropa prs.save(path, SaveFormat.PPTX) innan try‑blocket avslutas. PPTX är det enda stödda utdataformatet.
prs.save("result.pptx", SaveFormat.PPTX);Filen skrivs atomärt; om ett fel uppstår innan detta anrop, skapas ingen utdatafil.
Fullständigt fungerande exempel
Följande program skapar en tvåbildspresentation med en titelform på den första bilden och en tabell på den andra.
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");
}
}Vanliga problem och lösningar
IllegalStateException: Presentation already disposed
Du anropar metoder på ett Presentation‑objekt efter att try‑with‑resources‑blocket har avslutats. Håll alltid allt arbete inom try‑blocket.
UnsupportedOperationException vid sparande
Detta inträffar när du försöker spara i ett annat format än PPTX, eller när du använder en funktion som inte stöds (t.ex. diagram eller animationer).
Formen visas utanför det synliga bildområdet
Bilder är som standard 720 × 540 punkter. Behåll x + width <= 720 och y + height <= 540.
Vanliga frågor
Vad är standardstorleken på bilden?
En ny Presentation() skapar bilder i standardstorleken 10 × 7,5 tum (720 × 540 punkt). Att ändra bildstorleken stöds ännu inte i den här utgåvan.
Kan jag lägga till mer än en slide?
Ja. Anropa prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) för att lägga till en tom bild och komma åt den via index:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Kan jag öppna en befintlig fil och lägga till bilder?
Ja:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Vilka format kan jag spara till?
Endast SaveFormat.PPTX stöds. Export till PDF, HTML, SVG eller bilder är inte tillgängligt i den här utgåvan.