Kuinka luoda esityksiä Java-kielellä
Aspose.Slides FOSS for Java antaa sinun luoda PowerPoint-esityksiä täysin Javassa ilman riippuvuutta Microsoft Officesta. Tämä opas näyttää, miten luodaan uusi esitys, lisätään dioja ja muotoja, muotoillaan tekstiä ja tallennetaan tulos.
Vaiheittainen opas
Vaihe 1: Lisää Maven‑riippuvuus
Lisää Aspose.Slides FOSS omaan pom.xml. Java 21 tai uudempi vaaditaan.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Vahvista asennus:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Vaihe 2: Tuo vaaditut luokat
Tuo Presentation-luokka ja SaveFormat-enum, jotka tarvitaan tallentamiseen.
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;Kaikki muoto‑tyypin vakioita sijaitsevat org.aspose.slides.foss.ShapeType. Muotoilun enumit (FillType, NullableBool) ovat myös org.aspose.slides.fossssa.
Vaihe 3: Luo esitys
Käytä new Presentation() ja kääri se try-with-resources -rakenteeseen. Uusi esitys alkaa yhdellä tyhjällä dialla.
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);
}Tärkeää: Käytä aina try-with-resources -menetelmää tai kutsu prs.dispose() finally-lohkossa. Resursseja ei vapauteta oikein muuten.
Vaihe 4: Avaa dia
Ensimmäinen dia on indeksissä 0. Tyhjä esitys sisältää täsmälleen yhden dian.
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);
}Vaihe 5: Lisää muoto
Käytä slide.getShapes().addAutoShape() lisätäksesi AutoShapen. Parametrit ovat (shapeType, x, y, width, height) kaikki pisteinä (1 piste = 1/72 tuumaa; standardi dia on 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);
}Vaihe 6: Tallenna esitys
Kutsu prs.save(path, SaveFormat.PPTX) ennen kuin try-lohko poistuu. PPTX on ainoa tuettu tulostusmuoto.
prs.save("result.pptx", SaveFormat.PPTX);Tiedosto kirjoitetaan atomisesti; jos virhe tapahtuu ennen tätä kutsua, tulostetiedostoa ei luoda.
Täydellinen toimiva esimerkki
Seuraava ohjelma luo kaksidiapisteisen esityksen, jossa on otsikkomuoto ensimmäisellä dialla ja taulukko toisella.
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");
}
}Yleisiä ongelmia ja korjauksia
IllegalStateException: Presentation already disposed
Kutsut metodeja Presentation-objektilla sen jälkeen, kun try‑with‑resources‑lohko on päättynyt. Pidä kaikki työ aina try‑lohkon sisällä.
UnsupportedOperationException tallennettaessa
Tämä tapahtuu, kun yritetään tallentaa muotoa muuta kuin PPTX tai kun käytetään tukematonta ominaisuutta (kuten kaavioita tai animaatioita).
Muoto näkyy näkyvän dian alueen ulkopuolella
Diat ovat oletuksena 720 × 540 pistettä. Säilytä x + width <= 720 ja y + height <= 540.
Usein kysytyt kysymykset
Mikä on dian oletuskoko?
Uusi Presentation() luo dioja standardikokoisina 10 × 7,5 tuumaa (720 × 540 pistettä) kokoisina. Dia‑koon muuttamista ei vielä tueta tässä versiossa.
Voinko lisätä useamman kuin yhden dian?
Kyllä. Kutsu prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) lisätäksesi tyhjän dian ja käyttää sitä indeksin avulla:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Voinko avata olemassa olevan tiedoston ja lisätä dioja?
Kyllä:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Mihin formaatteihin voin tallentaa?
Vain SaveFormat.PPTX on tuettu. Vienti PDF-, HTML-, SVG- tai kuviin ei ole saatavilla tässä versiossa.