Cara Membuat Pembentangan dalam Java
Aspose.Slides FOSS for Java membolehkan anda membuat persembahan PowerPoint sepenuhnya dalam Java tanpa kebergantungan pada Microsoft Office. Panduan ini menunjukkan cara membuat persembahan baru, menambah slaid dan bentuk, memformat teks, dan menyimpan hasilnya.
Panduan Langkah demi Langkah
Langkah 1: Tambah Kebergantungan Maven
Tambah Aspose.Slides FOSS ke pom.xml anda. Java 21 atau versi lebih baru diperlukan.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Sahkan pemasangan:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Langkah 2: Import Kelas yang Diperlukan
Import kelas Presentation dan enum SaveFormat yang diperlukan untuk menyimpan.
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;Semua pemalar jenis bentuk berada dalam org.aspose.slides.foss.ShapeType. Enum pemformatan (FillType, NullableBool) juga berada dalam org.aspose.slides.foss.
Langkah 3: Buat Persembahan
Gunakan new Presentation() dan balutkan ia dalam try-with-resources. Pembentangan baru bermula dengan satu slaid kosong.
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);
}Penting: Sentiasa gunakan try-with-resources atau panggil prs.dispose() dalam blok finally. Sumber tidak akan dilepaskan dengan betul jika tidak.
Langkah 4: Akses Slaid
Slaid pertama berada pada indeks 0. Persembahan kosong mempunyai tepat satu slaid.
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);
}Langkah 5: Tambah Bentuk
Gunakan slide.getShapes().addAutoShape() untuk menambah AutoShape. Parameter ialah (shapeType, x, y, width, height) semua dalam titik (1 titik = 1/72 inci; slaid standard ialah 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);
}Langkah 6: Simpan Persembahan
Panggil prs.save(path, SaveFormat.PPTX) sebelum blok try keluar. PPTX adalah satu-satunya format output yang disokong.
prs.save("result.pptx", SaveFormat.PPTX);Fail ditulis secara atomik; jika ralat berlaku sebelum panggilan ini, tiada fail output yang dibuat.
Contoh Kerja Lengkap
Program berikut menghasilkan persembahan dua slaid dengan bentuk tajuk pada slaid pertama dan jadual pada slaid kedua.
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");
}
}Isu Umum dan Penyelesaian
IllegalStateException: Presentation already disposed
Anda memanggil kaedah pada objek Presentation selepas blok try‑with‑resources telah berakhir. Sentiasa letakkan semua kerja di dalam blok try.
UnsupportedOperationException semasa menyimpan
Ini berlaku apabila cuba menyimpan dalam format selain PPTX, atau apabila menggunakan ciri yang tidak disokong (seperti carta atau animasi).
Bentuk muncul di luar kawasan slaid yang dapat dilihat
Slaid berukuran 720 × 540 mata secara lalai. Simpan x + width <= 720 dan y + height <= 540.
Soalan Lazim
Apakah saiz slaid lalai?
Satu Presentation() baru mencipta slaid pada saiz standard 10 × 7.5 inci (720 × 540 titik). Menukar saiz slaid belum disokong dalam edisi ini.
Bolehkah saya menambah lebih daripada satu slaid?
Ya. Panggil prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) untuk menambah slaid kosong dan mengaksesnya mengikut indeks:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Bolehkah saya membuka fail sedia ada dan menambah slaid?
Ya:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Format apa yang boleh saya simpan?
Hanya SaveFormat.PPTX disokong. Eksport ke PDF, HTML, SVG, atau imej tidak tersedia dalam edisi ini.