Prezentációk létrehozása Java-ban
Az Aspose.Slides FOSS for Java lehetővé teszi, hogy teljesen Java-ban hozzon létre PowerPoint‑prezentációkat, Microsoft Office függőség nélkül. Ez az útmutató bemutatja, hogyan lehet új prezentációt létrehozni, diákot és alakzatokat hozzáadni, szöveget formázni, és elmenteni az eredményt.
Lépésről‑lépésre útmutató
1. lépés: Adja hozzá a Maven függőséget
Adja hozzá az Aspose.Slides FOSS-t a pom.xml-hez. Java 21 vagy újabb szükséges.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Ellenőrizze a telepítést:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");2. lépés: A szükséges osztályok importálása
Importálja a Presentation osztályt és a SaveFormat enumot, amely a mentéshez szükséges.
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;Minden alakzat‑típusú állandó a org.aspose.slides.foss.ShapeType‑ben található. A formázási felsorolások (FillType, NullableBool) szintén a org.aspose.slides.foss‑ben vannak.
3. lépés: Prezentáció létrehozása
Használja a new Presentation()-t, és csomagolja be try-with-resources használatával. Egy új bemutató egy üres diával kezdődik.
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);
}Fontos: Mindig használja a try-with-resources szerkezetet, vagy hívja meg prs.dispose()-t egy finally blokkban. Az erőforrások egyébként nem szabadulnak fel megfelelően.
4. lépés: Diához hozzáférés
Az első dia indexe 0. Egy üres prezentációnak pontosan egy diája van.
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);
}5. lépés: Alakzat hozzáadása
Használja a slide.getShapes().addAutoShape() parancsot egy AutoShape hozzáadásához. A paraméterek (shapeType, x, y, width, height) mind pontban (1 pont = 1/72 hüvelyk; a szabványos dia 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);
}6. lépés: A bemutató mentése
Hívja meg a prs.save(path, SaveFormat.PPTX)-t, mielőtt a try blokk kilép. A PPTX az egyetlen támogatott kimeneti formátum.
prs.save("result.pptx", SaveFormat.PPTX);A fájl atomik módon kerül írásra; ha hiba lép fel a hívás előtt, nem jön létre kimeneti fájl.
Teljes működő példa
Az alábbi program egy kétdiapozíciós prezentációt hoz létre, amelynek az első dián egy címszöveg alakzat, a másodikon pedig egy táblázat található.
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");
}
}Általános problémák és megoldások
IllegalStateException: Presentation already disposed
A try-with-resources blokk kilépése után metódusokat hívsz egy Presentation objektumon. Mindig tartsd a teljes munkát a try blokkban.
UnsupportedOperationException mentéskor
Ez akkor fordul elő, amikor a PPTX-en kívül más mentési formátumot próbálunk, vagy amikor nem támogatott funkciót használunk (például diagramokat vagy animációkat).
Alakzat a látható diaterületen kívül jelenik meg
A diák alapértelmezés szerint 720 × 540 pont. Tartsa meg x + width <= 720 és y + height <= 540.
Gyakran Ismételt Kérdések
Mi a diák alapértelmezett mérete?
Egy új Presentation() a szabványos 10 × 7,5 hüvelykes (720 × 540 pont) méretű diát hoz létre. A dia méretének módosítása még nem támogatott ebben a kiadásban.
Hozzáadhatok több mint egy diát?
Igen. Hívja meg a prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0))-t, hogy egy üres diát fűzzön hozzá, és index szerint érje el:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Megnyithatok egy meglévő fájlt, és hozzáadhatok diákat?
Igen:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Milyen formátumokba menthetek?
Csak a SaveFormat.PPTX támogatott. A PDF, HTML, SVG vagy képek exportálása nem érhető el ebben a kiadásban.