Kuinka ladata esitykset Java:ssa
Aspose.Slides FOSS for Java antaa sinun avata minkä tahansa .pptx-tiedoston, tarkastella sen sisältöä ja joko tallentaa sen takaisin PPTX-muotoon tai poimia siitä tietoja. Tämä opas kattaa tiedoston avaamisen, diojen läpikäymisen, muodon tekstin lukemisen ja tallennuksen pyöräytyksen.
Vaiheittainen opas
Vaihe 1: Lisää Maven‑riippuvuus
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>Vaihe 2: Avaa olemassa oleva esitys
Välitä tiedostopolku Presentation-konstruktorille. Käytä try-with-resourcesia varmistaaksesi siivouksen.
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);
}Tuntemattomat XML-osat lähdetiedostossa säilytetään tarkasti sellaisenaan: kirjasto ei koskaan poista sisältöä, jota se ei vielä ymmärrä.
Vaihe 3: Tarkista diat
Iteroi kaikkien diojen läpi ja tulosta niiden muotojen lukumäärä:
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");
}
}Vaihe 4: Lue muodon teksti
Käy läpi muodot ja lue teksti muodoista, joilla on 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());
}
}
}
}
}Vaihe 5: Lue asiakirjan ominaisuudet
Pääse käsiksi asiakirjan perusominaisuuksiin 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());
}Vaihe 6: Kierrospalautus‑tallennus
Kun olet tarkastanut tai muokannut esitystä, tallenna se takaisin PPTX-muotoon:
prs.save("output.pptx", SaveFormat.PPTX);Tallentaminen eri polkuun luo uuden tiedoston. Tallentaminen samaan polkuun korvaa alkuperäisen.
Yleisiä ongelmia ja korjauksia
java.io.FileNotFoundException
Tarkista, että polku .pptx‑tiedostoon on oikea suhteessa työhakemistoon. Käytä java.nio.file.Paths‑menetelmää luotettavaan polunrakentamiseen:
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
Kirjasto tukee .pptx (Office Open XML) vain. Vanha .ppt (binary PowerPoint 97-2003) -tiedostoja ei tueta.
Muodoilla ei ole getTextFrame()-metodia
Jotkut muodot (Connectors, PictureFrames, GroupShapes) eivät sisällä tekstikehystä. Tarkista instanceof IAutoShape ennen muunnosta ja tekstin käyttöä.
Usein kysytyt kysymykset
Säilyttääkö lataus kaiken alkuperäisen sisällön?
Kyllä. Tuntemattomat XML‑osat säilytetään kirjaimellisesti kierrospalautus tallennuksessa. Kirjasto sarjoittaa vain ne asiakirjamallin osat, jotka se ymmärtää, ja välittää läpi kaikki XML‑t, joita se ei tunnista.
Voinko ladata salasanasuojatun PPTX:n?
Salasanalla suojattuja (salattuja) esityksiä ei tueta tässä versiossa.
Onko lataaminen InputStreamistä tuettu?
Kyllä. Presentation-konstruktori hyväksyy InputStream:
import java.io.FileInputStream;
try (FileInputStream fis = new FileInputStream("deck.pptx");
Presentation prs = new Presentation(fis)) {
System.out.println("Slides: " + prs.getSlides().size());
}