Cara Memuatkan Pembentangan dalam Java
Aspose.Slides FOSS for Java membolehkan anda membuka mana-mana fail .pptx, memeriksa kandungannya, dan sama ada menyimpannya kembali ke PPTX atau mengekstrak data daripadanya. Panduan ini merangkumi cara membuka fail, mengulangi slaid, membaca teks bentuk, dan menyimpan semula secara pusingan.
Panduan Langkah demi Langkah
Langkah 1: Tambahkan 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 konstruktor Presentation. 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 diketahui 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
Ulangi melalui bentuk dan baca teks dari 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 dokumen teras 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 Pusingan
Selepas memeriksa atau mengubah suai persembahan, simpan semula ke PPTX:
prs.save("output.pptx", SaveFormat.PPTX);Menyimpan ke laluan yang berbeza mencipta fail baru. Menyimpan ke laluan yang sama menimpa fail asal.
Isu Umum dan Penyelesaian
java.io.FileNotFoundException
Semak bahawa laluan ke fail .pptx 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
Perpustakaan menyokong .pptx (Office Open XML) sahaja. Fail .ppt (PowerPoint binari 97-2003) warisan tidak disokong.
Shapes tidak mempunyai kaedah getTextFrame()
Beberapa bentuk (Connectors, PictureFrames, GroupShapes) tidak mempunyai bingkai teks. Periksa dengan instanceof IAutoShape sebelum menukar jenis dan mengakses teks.
Soalan Lazim
Adakah pemuatan mengekalkan semua kandungan asal?
Ya. Bahagian XML yang tidak diketahui dipelihara secara verbatim semasa simpanan pusingan. Perpustakaan hanya menserialkan bahagian model dokumen yang difahaminya, dan membenarkan mana-mana XML yang tidak dikenali melaluinya.
Bolehkah saya memuatkan PPTX yang dilindungi kata laluan?
Pembentangan yang dilindungi kata laluan (disulitkan) tidak disokong dalam edisi ini.
Adakah memuatkan dari InputStream disokong?
Ya. Konstruktor Presentation 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());
}