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

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

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

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

Βήμα 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: Αποθήκευση κυκλικής διαδρομής

Αφού ελέγξετε ή τροποποιήσετε την παρουσίαση, αποθηκεύστε την ξανά σε μορφή 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());
}

Δείτε επίσης

 Ελληνικά