Kaip įkelti pristatymus į Java
Aspose.Slides FOSS for Java lets you open any .pptx failą, patikrinkite jo turinį ir arba išsaugokite jį atgal į PPTX, arba išskirkite duomenis iš jo. Ši vadovas apima failo atidarymą, skaidrių peržiūrą, formų teksto skaitymą ir išsaugojimo grąžinimą.
Žingsnis po žingsnio vadovas
Žingsnis 1: Pridėkite Maven priklausomybę
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Žingsnis 2: Atverti esamą pristatymą
Perduokite failo kelią į Presentation konstruktorių. 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.
Žingsnis 3: 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");
}
}Žingsnis 4: Skaityti formų 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
Gaukite prieigą prie pagrindinių dokumento savybių 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šsaugoti atgal
Po peržiūros arba modifikavimo, išsaugokite pristatymą 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 iki .pptx failo yra teisingas, atsižvelgiant į darbinį katalogą. Naudokite java.nio.file.Paths patikimam kelio kūrimui:
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 .pptx (Office Open XML) tik. Senesnės .ppt (binary PowerPoint 97-2003) failai nepalaikomi.
Formoms nėra getTextFrame() metodo
Kai kurie formos (Connectors, PictureFrames, GroupShapes) neturi teksto rėmo. Patikrinkite su instanceof IAutoShape prieš konvertavimą ir teksto pasiekimą.
Dažnai 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, o visas nepažįstamas XML tiesiog perduoda.
Ar galiu įkelti slaptažodžiu apsaugotą PPTX?
Slaptažodžiu apsaugoti (šifruoti) pristatymai šioje versijoje nepalaikomi.
Ar įkėlimas iš InputStream palaikomas?
Taip. The 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());
}