Cara Memuat Persembahan dalam Java

Cara Memuat Persembahan dalam Java

Aspose.Slides FOSS for Java lets you open any .pptx fail, periksa kandungannya, dan sama ada simpan semula ke PPTX atau ekstrak data daripadanya. Panduan ini meliputi membuka fail, mengiterasi slaid, membaca teks bentuk, dan menyimpan semula secara round‑tripping.

Panduan Langkah demi Langkah

Langkah 1: Tambah Kebergantungan Maven

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

Langkah 2: Buka Persembahan Sedia Ada

Hantar laluan fail kepada Presentation pembina. 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);
}

Bahagian XML yang tidak dikenali dalam fail sumber dipelihara secara verbatim: perpustakaan tidak pernah mengeluarkan kandungan yang belum difahaminya.


Langkah 3: Periksa Slaid

Ulangi semua slaid dan cetak kiraan bentuk mereka:

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 bentuk-bentuk dan baca teks daripada bentuk yang mempunyai 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 Sifat Dokumen

Akses sifat teras dokumen daripada 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 Pusingan Balik

Selepas memeriksa atau mengubah persembahan, simpan kembali ke PPTX:

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

Menyimpan ke laluan yang berbeza akan mencipta fail baru. Menyimpan ke laluan yang sama akan menulis ganti fail asal.


Isu Umum dan Penyelesaian

java.io.FileNotFoundException

Semak bahawa laluan ke .pptx fail adalah betul relatif kepada direktori kerja. Gunakan java.nio.file.Paths untuk pembinaan laluan yang kukuh:

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

Pustaka menyokong .pptx (Office Open XML) sahaja. Legasi .ppt (binary PowerPoint 97-2003) tidak disokong.

Bentuk tidak mempunyai kaedah getTextFrame()

Beberapa bentuk (Connectors, PictureFrames, GroupShapes) tidak mempunyai bingkai teks. Semak dengan instanceof IAutoShape sebelum menukar jenis dan mengakses teks.


Soalan Lazim

Adakah pemuatan mengekalkan semua kandungan asal?

Ya. Bahagian XML yang tidak dikenali disimpan secara verbatim semasa simpan pusingan balik. Pustaka hanya menserialkan bahagian model dokumen yang difahaminya, dan meneruskan sebarang XML yang tidak dikenali.

Bolehkah saya memuatkan PPTX yang dilindungi kata laluan?

Pembentangan yang dilindungi kata laluan (dienkripsi) tidak disokong dalam edisi ini.

Adakah pemuatan dari InputStream disokong?

Ya. The Presentation pembina menerima satu 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 Melayu