Kako kreirati prezentacije u Javi
Aspose.Slides FOSS for Java omogućava kreiranje PowerPoint prezentacija u potpunosti u Javi bez zavisnosti od Microsoft Office-a. Ovaj vodič pokazuje kako kreirati novu prezentaciju, dodati slajdove i oblike, formatirati tekst i sačuvati rezultat.
Vodič korak po korak
Korak 1: Dodajte Maven zavisnost
Dodajte Aspose.Slides FOSS u svoj pom.xml. Potreban je Java 21 ili noviji.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Proverite instalaciju:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Korak 2: Uvezite potrebne klase
Uvezite klasu Presentation i enum SaveFormat potrebne za čuvanje.
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;Svi konstanti tipa oblika nalaze se u org.aspose.slides.foss.ShapeType. Enumi za formatiranje (FillType, NullableBool) takođe su u org.aspose.slides.foss.
Korak 3: Kreirajte prezentaciju
Koristite new Presentation() i zamotajte ga u try-with-resources. Nova prezentacija počinje sa jednim praznim slajdom.
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);
}Važno: Uvek koristite try-with-resources ili pozovite prs.dispose() u finally bloku. Resursi se neće pravilno osloboditi u suprotnom.
Korak 4: Pristup slajdu
Prvi slajd je na indeksu 0. Prazna prezentacija ima tačno jedan slajd.
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);
}Korak 5: Dodajte oblik
Koristite slide.getShapes().addAutoShape() da dodate AutoShape. Parametri su (shapeType, x, y, width, height) svi u tačkama (1 tačka = 1/72 inča; standardni slajd je 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);
}Korak 6: Sačuvajte prezentaciju
Pozovite prs.save(path, SaveFormat.PPTX) pre nego što try blok izađe. PPTX je jedini podržani izlazni format.
prs.save("result.pptx", SaveFormat.PPTX);Datoteka se piše atomarno; ako dođe do greške pre ovog poziva, izlazna datoteka se ne kreira.
Kompletan radni primer
Sledeći program kreira prezentaciju od dva slajda sa naslovnim oblikom na prvom slajdu i tabelom na drugom.
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");
}
}Uobičajeni problemi i popravke
IllegalStateException: Presentation already disposed
Pozivate metode na objektu Presentation nakon što je try‑with‑resources blok napušten. Uvek držite sav rad unutar try bloka.
UnsupportedOperationException prilikom čuvanja
Ovo se dešava kada pokušavate da sačuvate u formatu koji nije PPTX, ili kada koristite nepodržanu funkciju (kao što su grafikoni ili animacije).
Oblik se pojavljuje izvan vidljivog područja slajda
Slajdovi su podrazumevano 720 x 540 poena. Zadržite x + width <= 720 i y + height <= 540.
Često postavljana pitanja
Koja je podrazumevana veličina slajda?
Novi Presentation() kreira slajdove u standardnoj veličini od 10 × 7,5 inča (720 × 540 tačaka). Promena veličine slajda još nije podržana u ovom izdanju.
Mogu li dodati više od jednog slajda?
Да. Позовите prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) да додате празан слајд и приступите му по индексу:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Mogu li otvoriti postojeći fajl i dodati slajdove?
Da:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}U koje formate mogu da sačuvam?
Podržan je samo SaveFormat.PPTX. Izvoz u PDF, HTML, SVG ili slike nije dostupan u ovom izdanju.