Kaip įkelti prezentacijas Java kalboje

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());
}

Žr. taip pat

 Lietuvių