Πώς να φορτώσετε παρουσιάσεις στο Java

Πώς να φορτώσετε παρουσιάσεις στο Java

Aspose.Slides FOSS for Java lets you open any .pptx αρχείο, ελέγξτε το περιεχόμενό του και είτε αποθηκεύστε το ξανά σε PPTX είτε εξάγετε δεδομένα από αυτό. Αυτός ο οδηγός καλύπτει το άνοιγμα ενός αρχείου, την επανάληψη των διαφανειών, την ανάγνωση κειμένου σχήματος και το round‑tripping της αποθήκευσης.

Οδηγός βήμα προς βήμα

Βήμα 1: Προσθέστε την εξάρτηση Maven

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

Βήμα 2: Άνοιγμα υπάρχουσας παρουσίασης

Περάστε τη διαδρομή του αρχείου στο Presentation κατασκευαστή. Χρησιμοποιήστε try-with-resources για να εξασφαλίσετε τον καθαρισμό.

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

Άγνωστα τμήματα XML στο αρχείο προέλευσης διατηρούνται ακριβώς όπως είναι: η βιβλιοθήκη δεν αφαιρεί ποτέ περιεχόμενο που δεν έχει ακόμη κατανοήσει.


Βήμα 3: Επιθεώρηση διαφανειών

Επαναλάβετε πάνω σε όλες τις διαφάνειες και εκτυπώστε τον αριθμό των σχημάτων τους:

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: Ανάγνωση κειμένου σχήματος

Επανάληψη πάνω στα σχήματα και ανάγνωση κειμένου από σχήματα που έχουν ένα 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());
                }
            }
        }
    }
}

Βήμα 5: Ανάγνωση ιδιοτήτων εγγράφου

Πρόσβαση στις βασικές ιδιότητες του εγγράφου από 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());
}

Βήμα 6: Αποθήκευση με round‑trip

Αφού επιθεωρήσετε ή τροποποιήσετε την παρουσίαση, αποθηκεύστε την ξανά σε PPTX:

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

Η αποθήκευση σε διαφορετική διαδρομή δημιουργεί νέο αρχείο. Η αποθήκευση στην ίδια διαδρομή αντικαθιστά το αρχικό.


Κοινά προβλήματα και διορθώσεις

java.io.FileNotFoundException

Ελέγξτε ότι η διαδρομή προς το .pptx αρχείο είναι σωστή σε σχέση με τον τρέχοντα φάκελο εργασίας. Χρησιμοποιήστε java.nio.file.Paths για αξιόπιστη κατασκευή διαδρομών:

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

Η βιβλιοθήκη υποστηρίζει .pptx (Office Open XML) μόνο. Η παλαιότερη .ppt (δυαδικά αρχεία PowerPoint 97-2003) δεν υποστηρίζονται.

Τα σχήματα δεν έχουν μέθοδο getTextFrame()

Ορισμένα σχήματα (Connectors, PictureFrames, GroupShapes) δεν έχουν πλαίσιο κειμένου. Ελέγξτε με instanceof IAutoShape πριν από τη μετατροπή τύπου και την πρόσβαση στο κείμενο.


Συχνές Ερωτήσεις

Διατηρεί η φόρτωση όλο το αρχικό περιεχόμενο;?

Ναι. Τα άγνωστα τμήματα XML διατηρούνται ακριβώς κατά την αποθήκευση κυκλικής μετάβασης. Η βιβλιοθήκη σειριοποιεί μόνο τα τμήματα του μοντέλου εγγράφου που καταλαβαίνει και περνάει αδιατάρακτα οποιοδήποτε XML δεν αναγνωρίζει.

Μπορώ να φορτώσω ένα PPTX με προστασία κωδικού;?

Οι παρουσιάσεις με προστασία κωδικού (κρυπτογραφημένες) δεν υποστηρίζονται σε αυτήν την έκδοση.

Υποστηρίζεται η φόρτωση από InputStream;?

Ναι. Το Presentation κατασκευαστής δέχεται ένα InputStream:

import java.io.FileInputStream;

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

Δείτε επίσης

 Ελληνικά