Cómo cargar presentaciones en Java

Cómo cargar presentaciones en Java

Aspose.Slides FOSS for Java lets you open any .pptx archivo, inspecciona su contenido y guarda de nuevo en PPTX o extrae datos de él. Esta guía cubre abrir un archivo, iterar diapositivas, leer el texto de las formas y volver a guardar.

Guía paso a paso

Paso 1: Añadir la dependencia 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

Pasa la ruta del archivo al Presentation constructor. Usa 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 entiende.


Paso 3: Inspeccionar diapositivas

Itere sobre todas las diapositivas e imprima su recuento de 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 el texto de la forma

Itera sobre las formas y lee 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

Accede 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árdela de nuevo en PPTX:

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

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


Problemas comunes y soluciones

java.io.FileNotFoundException

Verifica que la ruta al .pptx archivo sea correcta respecto al directorio de trabajo. Usa 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 soporta .pptx (Office Open XML) solo. Legado .ppt (binary PowerPoint 97-2003) los archivos 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 preserva todo el contenido original?

Sí. Las partes XML desconocidas se conservan literalmente en el guardado de ida y vuelta. La biblioteca solo serializa las partes del modelo de documento que entiende y pasa sin modificar cualquier XML que no reconozca.

¿Puedo cargar un PPTX protegido con contraseña?

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

¿Se admite cargar desde un InputStream?

Sí. El Presentation constructor 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