Kako učitati prezentacije u Javi

Kako učitati prezentacije u Javi

Aspose.Slides FOSS for Java omogućuje vam otvaranje bilo koje .pptx datoteke, pregledavanje njenog sadržaja i ili spremanje natrag u PPTX ili izdvajanje podataka iz nje. Ovaj vodič pokriva otvaranje datoteke, iteriranje slajdova, čitanje teksta oblika i round-tripping spremanja.

Vodič korak po korak

Korak 1: Dodajte Maven ovisnost

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

Korak 2: Otvorite postojeću prezentaciju

Proslijedite putanju datoteke konstruktoru Presentation. Koristite try-with-resources kako biste osigurali čišćenje.

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

Nepožnati XML dijelovi u izvornom datoteci očuvani su doslovno: biblioteka nikada ne uklanja sadržaj koji još ne razumije.


Korak 3: Pregledajte slajdove

Iterirajte kroz sve slajdove i ispišite broj njihovih oblika:

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

Korak 4: Čitanje teksta oblika

Iterirajte kroz oblike i pročitajte tekst iz oblika koji imaju 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());
                }
            }
        }
    }
}

Korak 5: Čitanje svojstava dokumenta

Pristupite osnovnim svojstvima dokumenta iz 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());
}

Korak 6: Spremanje u oba smjera

Nakon pregleda ili izmjene prezentacije, spremite je natrag u PPTX:

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

Spremanje na drugu putanju stvara novu datoteku. Spremanje na istu putanju prepisuje original.


Uobičajeni problemi i rješenja

java.io.FileNotFoundException

Provjerite je li put do datoteke .pptx ispravan u odnosu na radni direktorij. Koristite java.nio.file.Paths za robusnu izgradnju puta:

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 podržava samo .pptx (Office Open XML). Zastarjele .ppt (binarni PowerPoint 97‑2003) datoteke nisu podržane.

Oblici nemaju metodu getTextFrame()

Neki oblici (Connectors, PictureFrames, GroupShapes) nemaju tekstualni okvir. Provjerite s instanceof IAutoShape prije pretvaranja i pristupa tekstu.


Često postavljana pitanja

Preserva li učitavanje sav izvorni sadržaj?

Da. Nepoznati XML dijelovi se čuvaju doslovno pri spremanju u krugu. Biblioteka serijalizira samo dijelove modela dokumenta koje razumije i propušta bilo koji XML koji ne prepoznaje.

Mogu li učitati PPTX zaštićen lozinkom?

Prezentacije zaštićene lozinkom (šifrirane) nisu podržane u ovoj ediciji.

Je li učitavanje iz InputStream-a podržano?

Da. Konstruktor Presentation prihvaća InputStream:

import java.io.FileInputStream;

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

Vidi također

 Hrvatski