Kako učitati prezentacije u Javi
Aspose.Slides FOSS for Java omogućava otvaranje bilo koje .pptx datoteke, pregled njenog sadržaja i ili čuvanje nazad u PPTX ili izdvajanje podataka iz nje. Ovaj vodič pokriva otvaranje datoteke, iteriranje slajdova, čitanje teksta oblika i round‑tripping čuvanje.
Vodič korak po korak
Korak 1: Dodajte Maven zavisnost
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Korak 2: Otvorite postojeću prezentaciju
Prosledite putanju do fajla konstruktoru Presentation. Koristite try-with-resources da biste osigurali čišćenje.
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);
}Nepožnati XML delovi u izvornom fajlu se čuvaju doslovno: biblioteka nikada ne uklanja sadržaj koji još ne razume.
Korak 3: Pregledaj slajdove
Iterirajte kroz sve slajdove i odštampajte njihov broj oblika:
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");
}
}Korak 4: Čitanje teksta oblika
Iterirajte kroz oblike i pročitajte tekst iz oblika koji imaju 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());
}
}
}
}
}Korak 5: Čitanje svojstava dokumenta
Pristupite osnovnim svojstvima dokumenta iz 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());
}Korak 6: Sačuvaj u oba smera
Nakon pregleda ili izmene prezentacije, sačuvajte je nazad u PPTX:
prs.save("output.pptx", SaveFormat.PPTX);Čuvanje na drugu putanju kreira novu datoteku. Čuvanje na istu putanju prepisuje original.
Uobičajeni problemi i popravke
java.io.FileNotFoundException
Proverite da je putanja do datoteke .pptx ispravna u odnosu na radni direktorijum. Koristite java.nio.file.Paths za robusnu konstrukciju putanje:
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
Biblioteka podržava .pptx (Office Open XML) samo. Legacy .ppt (binarni PowerPoint 97‑2003) fajlovi nisu podržani.
Oblici nemaju getTextFrame() metodu
Neki oblici (Connectors, PictureFrames, GroupShapes) nemaju tekstualni okvir. Proverite sa instanceof IAutoShape pre kastovanja i pristupa tekstu.
Često postavljana pitanja
Da li učitavanje čuva sav originalni sadržaj?
Da. Nepoznati XML delovi se čuvaju doslovno prilikom čuvanja u krugu. Biblioteka serijalizuje samo delove modela dokumenta koje razume i propušta bilo koji XML koji ne prepoznaje.
Mogu li učitati PPTX zaštićen lozinkom?
Prezentacije zaštićene lozinkom (šifrovane) nisu podržane u ovoj ediciji.
Da li je učitavanje iz InputStream-a podržano?
Da. Konstruktor Presentation prihvata InputStream:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}