Cómo cargar presentaciones en Java

Cómo cargar presentaciones en Java

Aspose.Slides FOSS for Java le permite abrir cualquier archivo .pptx, inspeccionar su contenido y guardarlo de nuevo en PPTX o extraer datos de él. Esta guía cubre la apertura de un archivo, la iteración de diapositivas, la lectura del texto de formas y el proceso de guardado de ida y vuelta.

Guía paso a paso

Paso 1: Añadir la dependencia de Maven

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

Paso 2: Abrir una presentación existente

Pase la ruta del archivo al constructor Presentation. Utilice try‑with‑resources para asegurar la limpieza.

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

Las partes XML desconocidas en el archivo fuente se conservan literalmente: la biblioteca nunca elimina contenido que aún no comprende.


Paso 3: Inspeccionar diapositivas

Iterar sobre todas las diapositivas e imprimir el recuento de sus formas:

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

Paso 4: Leer texto de forma

Iterar sobre las formas y leer el texto de las formas que tienen un 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());
                }
            }
        }
    }
}

Paso 5: Leer propiedades del documento

Acceder a las propiedades principales del documento desde 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());
}

Paso 6: Guardado de ida y vuelta

Después de inspeccionar o modificar la presentación, guárdala de nuevo en PPTX:

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

Guardar en una ruta diferente crea un nuevo archivo. Guardar en la misma ruta sobrescribe el original.


Problemas comunes y soluciones

java.io.FileNotFoundException

Verifique que la ruta al archivo .pptx sea correcta en relación con el directorio de trabajo. Utilice java.nio.file.Paths para una construcción de rutas robusta:

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

La biblioteca admite .pptx (Office Open XML) únicamente. Los archivos heredados .ppt (PowerPoint binario 97-2003) no son compatibles.

Las formas no tienen el método getTextFrame()

Algunas formas (Connectors, PictureFrames, GroupShapes) no tienen un marco de texto. Verifique con instanceof IAutoShape antes de hacer casting y acceder al texto.


Preguntas Frecuentes

¿La carga conserva todo el contenido original?

Sí. Las partes XML desconocidas se conservan literalmente al guardar en una ronda completa. La biblioteca solo serializa las partes del modelo de documento que entiende y pasa cualquier XML que no reconoce.

¿Puedo cargar un PPTX protegido con contraseña?

Las presentaciones protegidas con contraseña (cifradas) no son compatibles con esta edición.

¿Se admite la carga desde un InputStream?

Sí. El constructor Presentation acepta un InputStream:

import java.io.FileInputStream;

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

Ver también

 Español