Ako načítať prezentácie v Jave

Ako načítať prezentácie v Jave

Aspose.Slides FOSS for Java vám umožní otvoriť akýkoľvek .pptx súbor, skontrolovať jeho obsah a buď ho uložiť späť do PPTX, alebo z neho extrahovať dáta. Tento sprievodca pokrýva otváranie súboru, prechádzanie snímkami, čítanie textu tvarov a spätné ukladanie.

Krok za krokom sprievodca

Krok 1: Pridajte Maven závislosť

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Krok 2: Otvorte existujúcu prezentáciu

Preveďte cestu k súboru do konštruktora Presentation. Použite try-with-resources na zabezpečenie čistenia.

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

Neznáme XML časti v zdrojovom súbore sú zachované doslovne: knižnica nikdy neodstraňuje obsah, ktorý ešte nerozumeje.


Krok 3: Skontrolovať snímky

Iterujte cez všetky snímky a vypíšte počet ich tvarov:

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

Krok 4: Prečítanie textu tvaru

Iterujte cez tvary a čítajte text z tvarov, ktoré majú 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());
                }
            }
        }
    }
}

Krok 5: Prečítanie vlastností dokumentu

Prístup k základným vlastnostiam dokumentu z 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());
}

Krok 6: Uloženie v režime round‑trip

Po skontrolovaní alebo úprave prezentácie ju uložte späť do PPTX:

prs.save("output.pptx", SaveFormat.PPTX);

Uloženie na inú cestu vytvorí nový súbor. Uloženie na rovnakú cestu prepíše pôvodný.


Bežné problémy a riešenia

java.io.FileNotFoundException

Skontrolujte, či je cesta k súboru .pptx správna vzhľadom na pracovný adresár. Použite java.nio.file.Paths pre robustnú konštrukciu cesty:

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

Knižnica podporuje iba .pptx (Office Open XML). Súbory staršej verzie .ppt (binárny PowerPoint 97‑2003) nie sú podporované.

Tvary nemajú metódu getTextFrame()

Niektoré tvary (Connectors, PictureFrames, GroupShapes) nemajú textový rámik. Skontrolujte pomocou instanceof IAutoShape pred pretypovaním a prístupom k textu.


Často kladené otázky

Zachová načítanie všetok pôvodný obsah?

Áno. Neznáme časti XML sa pri uložení v režime round‑trip zachovávajú doslovne. Knižnica serializuje iba časti modelu dokumentu, ktoré rozumie, a prechádza akékoľvek XML, ktoré nepozná.

Môžem načítať PPTX chránený heslom?

Prezentácie chránené heslom (šifrované) nie sú v tejto edícii podporované.

Je načítanie z InputStream podporované?

Áno. Konštruktor Presentation prijíma InputStream:

import java.io.FileInputStream;

try (FileInputStream fis = new FileInputStream("deck.pptx");
     Presentation prs = new Presentation(fis)) {
    System.out.println("Slides: " + prs.getSlides().size());
}

Pozri tiež

 Slovenčina