Cum să creaţi prezentări în Java
Aspose.Slides FOSS for Java vă permite să creați prezentări PowerPoint în întregime în Java, fără dependență de Microsoft Office. Acest ghid arată cum să creați o prezentare nouă, să adăugați diapozitive și forme, să formatați textul și să salvați rezultatul.
Ghid pas cu pas
Pasul 1: Adăugați dependența Maven
Adăugați Aspose.Slides FOSS la pom.xml. Este necesar Java 21 sau o versiune ulterioară.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Verificați instalarea:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Pasul 2: Importă clasele necesare
Importați clasa Presentation și enumul SaveFormat necesare pentru salvare.
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;Toate constantele de tip formă se află în org.aspose.slides.foss.ShapeType. Enumerațiile de formatare (FillType, NullableBool) se află, de asemenea, în org.aspose.slides.foss.
Pasul 3: Creare prezentare
Utilizați new Presentation() și înfășurați-l în try-with-resources. O prezentare nouă începe cu un singur diapozitiv gol.
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);
}Important: Utilizați întotdeauna try-with-resources sau apelați prs.dispose() într-un bloc finally. Resursele nu vor fi eliberate corect în caz contrar.
Pasul 4: Accesarea unui diapozitiv
Primul diapozitiv se află la indexul 0. O prezentare goală are exact un diapozitiv.
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);
}Pasul 5: Adaugă o formă
Utilizați slide.getShapes().addAutoShape() pentru a adăuga un AutoShape. Parametrii sunt (shapeType, x, y, width, height) toți în puncte (1 punct = 1/72 inch; diapozitivul standard este 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);
}Pasul 6: Salvați prezentarea
Apelă prs.save(path, SaveFormat.PPTX) înainte ca blocul try să iasă. PPTX este singurul format de ieșire acceptat.
prs.save("result.pptx", SaveFormat.PPTX);Fișierul este scris atomic; dacă apare o eroare înainte de acest apel, nu se creează niciun fișier de ieșire.
Exemplu complet de lucru
Programul de mai jos creează o prezentare cu două diapozitive, cu o formă de titlu pe primul diapozitiv și un tabel pe al doilea.
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");
}
}Probleme comune și soluții
IllegalStateException: Presentation already disposed
Apelați metode pe un obiect Presentation după ce blocul try‑with‑resources a ieșit. Întotdeauna păstraţi totul în interiorul blocului try.
UnsupportedOperationException la salvare
Acest lucru se întâmplă atunci când se încearcă un format de salvare diferit de PPTX sau când se utilizează o funcționalitate neacceptată (cum ar fi graficele sau animațiile).
Forma apare în afara zonei vizibile a diapozitivului
Diapozitivele sunt de 720 x 540 puncte în mod implicit. Păstrează x + width <= 720 și y + height <= 540.
Întrebări frecvente
Care este dimensiunea implicită a diapozitivului?
Un nou Presentation() creează diapozitive la dimensiunea standard de 10 x 7,5 inci (720 x 540 puncte). Modificarea dimensiunii diapozitivului nu este încă suportată în această ediție.
Pot adăuga mai mult de un diapozitiv?
Da. Apelă prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) pentru a adăuga un diapozitiv gol și a-l accesa prin index:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Pot să deschid un fișier existent și să adaug diapozitive?
Da:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}În ce formate pot salva?
Doar SaveFormat.PPTX este acceptat. Exportul în PDF, HTML, SVG sau imagini nu este disponibil în această ediție.