Kako učitati prezentacije u Javi
Aspose.Slides FOSS for Java omogućuje vam otvaranje bilo koje .pptx datoteke, pregledavanje njenog sadržaja i ili spremanje natrag u PPTX ili izdvajanje podataka iz nje. Ovaj vodič pokriva otvaranje datoteke, iteriranje slajdova, čitanje teksta oblika i round-tripping spremanja.
Vodič korak po korak
Korak 1: Dodajte Maven ovisnost
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Korak 2: Otvorite postojeću prezentaciju
Proslijedite putanju datoteke konstruktoru Presentation. Koristite try-with-resources kako 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 dijelovi u izvornom datoteci očuvani su doslovno: biblioteka nikada ne uklanja sadržaj koji još ne razumije.
Korak 3: Pregledajte slajdove
Iterirajte kroz sve slajdove i ispišite broj njihovih 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: Spremanje u oba smjera
Nakon pregleda ili izmjene prezentacije, spremite je natrag u PPTX:
prs.save("output.pptx", SaveFormat.PPTX);Spremanje na drugu putanju stvara novu datoteku. Spremanje na istu putanju prepisuje original.
Uobičajeni problemi i rješenja
java.io.FileNotFoundException
Provjerite je li put do datoteke .pptx ispravan u odnosu na radni direktorij. Koristite java.nio.file.Paths za robusnu izgradnju puta:
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 samo .pptx (Office Open XML). Zastarjele .ppt (binarni PowerPoint 97‑2003) datoteke nisu podržane.
Oblici nemaju metodu getTextFrame()
Neki oblici (Connectors, PictureFrames, GroupShapes) nemaju tekstualni okvir. Provjerite s instanceof IAutoShape prije pretvaranja i pristupa tekstu.
Često postavljana pitanja
Preserva li učitavanje sav izvorni sadržaj?
Da. Nepoznati XML dijelovi se čuvaju doslovno pri spremanju u krugu. Biblioteka serijalizira samo dijelove modela dokumenta koje razumije i propušta bilo koji XML koji ne prepoznaje.
Mogu li učitati PPTX zaštićen lozinkom?
Prezentacije zaštićene lozinkom (šifrirane) nisu podržane u ovoj ediciji.
Je li učitavanje iz InputStream-a podržano?
Da. Konstruktor Presentation prihvaća InputStream:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}