Cara Membuat Presentasi di Java
Aspose.Slides FOSS for Java memungkinkan Anda membuat presentasi PowerPoint sepenuhnya dalam Java tanpa ketergantungan pada Microsoft Office. Panduan ini menunjukkan cara membuat presentasi baru, menambahkan slide dan bentuk, memformat teks, dan menyimpan hasilnya.
Panduan Langkah-demi-Langkah
Langkah 1: Tambahkan Dependensi Maven
Tambahkan Aspose.Slides FOSS ke pom.xml Anda. Java 21 atau yang lebih baru diperlukan.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Verifikasi instalasi:
import org.aspose.slides.foss.Presentation;
Presentation prs = new Presentation();
prs.dispose();
System.out.println("Aspose.Slides FOSS ready");Langkah 2: Impor Kelas yang Diperlukan
Impor 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 konstanta tipe bentuk berada di org.aspose.slides.foss.ShapeType. Enum pemformatan (FillType, NullableBool) juga berada di org.aspose.slides.foss.
Langkah 3: Buat Presentasi
Gunakan new Presentation() dan bungkus dalam try-with-resources. Presentasi baru dimulai dengan satu slide 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: Selalu gunakan try-with-resources atau panggil prs.dispose() dalam blok finally. Sumber daya tidak akan dilepaskan dengan benar jika tidak.
Langkah 4: Akses Slide
Slide pertama berada pada indeks 0. Presentasi kosong memiliki tepat satu slide.
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: Tambahkan Bentuk
Gunakan slide.getShapes().addAutoShape() untuk menambahkan AutoShape. Parameter‑nya adalah (shapeType, x, y, width, height) semuanya dalam poin (1 poin = 1/72 inci; slide standar berukuran 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 Presentasi
Panggil prs.save(path, SaveFormat.PPTX) sebelum blok try keluar. PPTX adalah satu-satunya format output yang didukung.
prs.save("result.pptx", SaveFormat.PPTX);File ditulis secara atomik; jika terjadi kesalahan sebelum pemanggilan ini, tidak ada file output yang dibuat.
Contoh Kerja Lengkap
Program berikut membuat presentasi dua slide dengan bentuk judul pada slide pertama dan tabel pada slide 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");
}
}Masalah Umum dan Perbaikan
IllegalStateException: Presentation already disposed
Anda memanggil metode pada objek Presentation setelah blok try-with-resources selesai. Selalu letakkan semua pekerjaan di dalam blok try.
UnsupportedOperationException saat menyimpan
Hal ini terjadi saat mencoba format penyimpanan selain PPTX, atau saat menggunakan fitur yang tidak didukung (seperti diagram atau animasi).
Bentuk muncul di luar area slide yang terlihat
Slide berukuran 720 x 540 poin secara default. Pertahankan x + width <= 720 dan y + height <= 540.
Pertanyaan yang Sering Diajukan
Berapa ukuran slide default?
Sebuah Presentation() baru membuat slide dengan ukuran standar 10 × 7,5 inci (720 × 540 poin). Mengubah ukuran slide belum didukung dalam edisi ini.
Bisakah saya menambahkan lebih dari satu slide?
Ya. Panggil prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0)) untuk menambahkan slide kosong dan mengaksesnya dengan indeks:
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
ISlide slide2 = prs.getSlides().get(1);Bisakah saya membuka file yang ada dan menambahkan slide?
Ya:
try (Presentation prs = new Presentation("existing.pptx")) {
prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));
prs.save("existing.pptx", SaveFormat.PPTX);
}Format apa yang dapat saya simpan?
Hanya SaveFormat.PPTX yang didukung. Ekspor ke PDF, HTML, SVG, atau gambar tidak tersedia dalam edisi ini.