Kaip įkelti prezentacijas Java kalboje
Aspose.Slides FOSS for Java leidžia atverti bet kokį .pptx failą, peržiūrėti jo turinį ir arba išsaugoti jį atgal į PPTX, arba išgauti duomenis iš jo. Šiame vadove nagrinėjami failo atvėrimas, skaidrių peržiūra, formų teksto skaitymas ir round‑tripping išsaugojimas.
Žingsnis po žingsnio vadovas
Žingsnis 1: Pridėti Maven priklausomybę
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>2 žingsnis: Atidaryti esamą pristatymą
Perduokite failo kelią Presentation konstruktoriui. Naudokite try-with-resources, kad užtikrintumėte išvalymą.
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);
}Nežinomos XML dalys šaltinio faile išsaugomos nepakitusiomis: biblioteka niekada nepašalina turinio, kurio dar nesupranta.
3 žingsnis: Peržiūrėti skaidres
Iteruokite per visas skaidres ir išveskite jų formų skaičių:
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");
}
}4 žingsnis: skaityti formos tekstą
Iteruokite per formas ir skaitykite tekstą iš formų, kurios turi 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());
}
}
}
}
}Žingsnis 5: Skaityti dokumento savybes
Gauti pagrindines dokumento savybes iš 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());
}Žingsnis 6: Išsaugojimas grįžtamuoju keliu
Patikrinus arba modifikuojant prezentaciją, išsaugokite ją atgal į PPTX:
prs.save("output.pptx", SaveFormat.PPTX);Išsaugojimas į kitą kelią sukuria naują failą. Išsaugojimas į tą patį kelią perrašo originalą.
Dažnos problemos ir sprendimai
java.io.FileNotFoundException
Patikrinkite, ar kelias į .pptx failą yra teisingas, atsižvelgiant į darbinį katalogą. Naudokite java.nio.file.Paths patikimam kelio konstruavimui:
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 palaiko tik .pptx (Office Open XML). Senesni .ppt (binary PowerPoint 97-2003) failai nepalaikomi.
Figūromos neturi getTextFrame() metodo
Kai kurie formos (Connectors, PictureFrames, GroupShapes) neturi teksto rėmo. Patikrinkite su instanceof IAutoShape prieš konvertuojant ir pasiekiant tekstą.
Dažniausiai užduodami klausimai
Ar įkėlimas išsaugo visą originalų turinį?
Taip. Nežinomos XML dalys išsaugomos nepakitusiomis atliekant dvigubą išsaugojimą. Biblioteka serializuoja tik tas dokumento modelio dalis, kurias supranta, ir praleidžia bet kokią XML, kurios nesupranta.
Ar galiu įkelti slaptažodžiu apsaugotą PPTX?
Slaptažodžiu apsaugoti (užšifruoti) pristatymai šioje versijoje nepalaikomi.
Ar įkėlimas iš InputStream palaikomas?
Taip. Presentation konstruktorius priima InputStream:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}