Kaip kurti prezentacijas Java kalba
Aspose.Slides FOSS for Java leidžia kurti PowerPoint pristatymus visiškai Java kalba, nesikliaujant Microsoft Office. Šiame vadove parodyta, kaip sukurti naują pristatymą, pridėti skaidres ir formas, formatuoti tekstą ir išsaugoti rezultatą.
Žingsnis po žingsnio vadovas
Žingsnis 1: pridėkite Maven priklausomybę
Pridėkite Aspose.Slides FOSS prie savo pom.xml. Reikalinga Java 21 arba naujesnė.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Patikrinkite diegimą:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Žingsnis 2: Importuokite reikiamas klases
Importuokite Presentation klasę ir SaveFormat enumą, reikalingus išsaugojimui.
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;Visi formų tipo konstantai yra org.aspose.slides.foss.ShapeType. Formatavimo enumai (FillType, NullableBool) taip pat yra org.aspose.slides.foss.
Žingsnis 3: Sukurti pristatymą
Naudokite new Presentation() ir apgaubkite jį try‑with‑resources bloku. Nauja prezentacija prasideda viena tuščia skaidrė.
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);
}Svarbu: Visada naudokite try-with-resources arba iškvieskite prs.dispose() finally bloke. Priešingu atveju ištekliai nebus teisingai atlaisvinti.
4 žingsnis: Prieiti prie skaidrės
Pirmoji skaidrė yra indekse 0. Tuščia prezentacija turi lygiai vieną skaidrę.
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);
}Žingsnis 5: Pridėti formą
Naudokite slide.getShapes().addAutoShape(), kad pridėtumėte AutoShape. Parametrai yra (shapeType, x, y, width, height), visi taškais (1 taškas = 1/72 colio; standartinė skaidrė yra 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 žingsnis: Išsaugoti prezentaciją
Iškvieskite prs.save(path, SaveFormat.PPTX) prieš išeinant iš try bloko. PPTX yra vienintelis palaikomas išvesties formatas.
prs.save("result.pptx", SaveFormat.PPTX);Failas rašomas atominiu būdu; jei įvyksta klaida prieš šį iškvietimą, išvesties failas nesukuriamas.
Pilnas veikiantis pavyzdys
Žemiau pateikta programa sukuria dviejų skaidrių pristatymą su pavadinimo forma pirmoje skaidrėje ir lentele antroje.
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");
}
}Dažnos problemos ir sprendimai
IllegalStateException: Presentation already disposed
Jūs kviečiate metodus Presentation objektui po to, kai try‑with‑resources blokas baigėsi. Visada laikykite visą darbą try bloke.
UnsupportedOperationException išsaugant
Tai įvyksta bandant išsaugoti formatą, kuris nėra PPTX, arba naudojant nepalaikomą funkciją (pvz., diagramas arba animacijas).
Figūra atsiranda už matomo skaidrės ploto
Skaidrės pagal numatymą yra 720 × 540 taškų. Palikite x + width <= 720 ir y + height <= 540.
Dažnai užduodami klausimai
Koks yra numatytasis skaidrės dydis?
Naujas Presentation() sukuria skaidres standartiniu 10 × 7,5 colio (720 × 540 taškų) dydžiu. Skaidrių dydžio keitimas šioje leidimo versijoje dar nepalaikomas.
Ar galiu pridėti daugiau nei vieną skaidrę?
Taip. Iškvieskite prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)), kad pridėtumėte tuščią skaidrę ir pasiektumėte ją pagal indeksą:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Ar galiu atidaryti esamą failą ir pridėti skaidres?
Taip:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Kokius formatus galiu išsaugoti?
Palaikoma tik SaveFormat.PPTX. Eksportavimas į PDF, HTML, SVG arba vaizdus šioje leidimo versijoje nėra prieinamas.