Cara Memuat Presentasi di Java

Cara Memuat Presentasi di Java

Aspose.Slides FOSS for Java lets you open any .pptx file, periksa isinya, dan baik menyimpannya kembali ke PPTX atau mengekstrak data darinya. Panduan ini mencakup membuka file, mengiterasi slide, membaca teks shape, dan round‑tripping penyimpanan.

Panduan Langkah-demi-Langkah

Langkah 1: Tambahkan Dependensi Maven

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Langkah 2: Buka Presentasi yang Ada

Berikan jalur file ke Presentation konstruktor. Gunakan try-with-resources untuk memastikan pembersihan.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation("input.pptx")) {
    System.out.println("Slide count: " + prs.getSlides().size());
    prs.save("output.pptx", SaveFormat.PPTX);
}

Bagian XML yang tidak dikenal dalam file sumber dipertahankan secara verbatim: perpustakaan tidak pernah menghapus konten yang belum dipahaminya.


Langkah 3: Periksa Slide

Iterasi semua slide dan cetak jumlah bentuknya:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation("deck.pptx")) {
    for (int i = 0; i < prs.getSlides().size(); i++) {
        ISlide slide = prs.getSlides().get(i);
        int shapeCount = slide.getShapes().size();
        System.out.println("Slide " + i + ": " + shapeCount + " shapes");
    }
}

Langkah 4: Baca Teks Bentuk

Iterasi shape dan baca teks dari shape yang memiliki TextFrame:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation("deck.pptx")) {
    for (ISlide slide : prs.getSlides()) {
        for (IShape shape : slide.getShapes()) {
            if (shape instanceof IAutoShape) {
                IAutoShape autoShape = (IAutoShape) shape;
                ITextFrame tf = autoShape.getTextFrame();
                if (tf != null && !tf.getText().isEmpty()) {
                    System.out.println("  Shape text: " + tf.getText());
                }
            }
        }
    }
}

Langkah 5: Baca Properti Dokumen

Akses properti dokumen inti dari prs.getDocumentProperties():

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IShape;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IDocumentProperties;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation("deck.pptx")) {
    IDocumentProperties props = prs.getDocumentProperties();
    System.out.println("Title:   " + props.getTitle());
    System.out.println("Author:  " + props.getAuthor());
    System.out.println("Subject: " + props.getSubject());
}

Langkah 6: Simpan Secara Round-Trip

Setelah memeriksa atau memodifikasi presentasi, simpan kembali ke PPTX:

prs.save("output.pptx", SaveFormat.PPTX);

Menyimpan ke jalur yang berbeda membuat file baru. Menyimpan ke jalur yang sama menimpa file asli.


Masalah Umum dan Solusinya

java.io.FileNotFoundException

Periksa bahwa jalur ke .pptx file sudah benar relatif terhadap direktori kerja. Gunakan java.nio.file.Paths untuk konstruksi jalur yang kuat:

import java.nio.file.Path;
import java.nio.file.Paths;

Path path = Paths.get("assets", "deck.pptx");
try (Presentation prs = new Presentation(path.toString())) {
    // ...
}

Exception: File format is not supported

Perpustakaan mendukung .pptx (Office Open XML) saja. Legacy .ppt (binary PowerPoint 97-2003) tidak didukung.

Bentuk tidak memiliki metode getTextFrame()

Beberapa shape (Connectors, PictureFrames, GroupShapes) tidak memiliki frame teks. Periksa dengan instanceof IAutoShape sebelum melakukan casting dan mengakses teks.


Pertanyaan yang Sering Diajukan

Apakah pemuatan mempertahankan semua konten asli?

Ya. Bagian XML yang tidak dikenal dipertahankan persis pada penyimpanan putar-balik. Perpustakaan hanya menserialisasi bagian model dokumen yang dipahaminya, dan meneruskan XML apa pun yang tidak dikenalnya.

Bisakah saya memuat PPTX yang dilindungi kata sandi?

Presentasi yang dilindungi kata sandi (terenkripsi) tidak didukung dalam edisi ini.

Apakah memuat dari InputStream didukung?

Ya. The Presentation konstruktor menerima sebuah InputStream:

import java.io.FileInputStream;

try (FileInputStream fis = new FileInputStream("deck.pptx");
     Presentation prs = new Presentation(fis)) {
    System.out.println("Slides: " + prs.getSlides().size());
}

Lihat Juga

 Bahasa Indonesia