Introducción

Aspose.Slides FOSS for Java is now available on Maven Central: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx archivos completamente en Java, sin dependencia de Microsoft Office ni de ningún tiempo de ejecución propietario.

La biblioteca está diseñada para desarrolladores que necesitan generar o manipular archivos de presentación de forma programática: automatizar presentaciones a partir de datos, extraer texto y metadatos de archivos PPTX cargados, crear canalizaciones de informes basadas en presentaciones, o incrustar la creación de presentaciones en aplicaciones Spring Boot. Porque aspose-slides-foss es puro Java, se despliega idénticamente en Windows, macOS, Linux y contenedores Docker.

Características clave

  • Compatibilidad completa de ida y vuelta con PPTX: Abrir cualquier .pptx archivo, modifique su contenido y guárdelo de nuevo sin perder partes XML desconocidas que la biblioteca aún no comprende.
  • Gestión de diapositivas: Añadir, eliminar e iterar diapositivas usando prs.getSlides(); la presentación comienza con una diapositiva en blanco después de new Presentation().
  • Autoformas, tablas y conectores: Insertar formas vía slide.getShapes().addAutoShape(), datos tabulares a través de slide.getShapes().addTable(), y conectores visuales entre formas a través de slide.getShapes().addConnector().
  • Formato de texto enriquecido: Formatear texto a nivel de carácter con PortionFormat: tamaño de fuente, negrita, cursiva, subrayado y color ARGB a través de FillType.SOLID y ColorFormat.
  • Tipos de relleno: Aplicar FillType.SOLID, GRADIENT, PATTERN, o PICTURE rellenos a cualquier forma.
  • Efectos visuales: Sombra externa, resplandor, borde suave, desenfoque, reflejo y sombra interna via shape.getEffectFormat().
  • 3D formatting: Bisel, cámara, conjunto de luces, material y profundidad de extrusión via shape.getThreeDFormat().
  • Notas del presentador: Adjuntar texto de notas a cada diapositiva via getNotesSlideManager().addNotesSlide().
  • Comentarios en hilos: Añadir comentarios con metadatos del autor y posición de la diapositiva.
  • Imágenes incrustadas: Incrustar desde ruta de archivo, bytes o InputStream.
  • Propiedades del documento: Leer y escribir propiedades core, app y personalizadas.

Comenzando

Agregue la dependencia Maven. Se requiere Java 21 o posterior.

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

Cree su primera presentación con una forma y guárdela:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

public class HelloSlides {
    public static void main(String[] args) {
        try (Presentation prs = new Presentation()) {
            ISlide slide = prs.getSlides().get(0);
            IAutoShape shape = slide.getShapes().addAutoShape(
                ShapeType.RECTANGLE, 50, 50, 400, 120
            );
            shape.addTextFrame("Hello from Aspose.Slides FOSS!");
            prs.save("hello.pptx");
        }
    }
}

Usar siempre Presentation dentro de un bloque try-with-resources; esto asegura que todos los recursos internos se liberen cuando el bloque finaliza.

Ejemplo de formato de texto

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation()) {
    IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 500, 150
    );
    ITextFrame tf = shape.addTextFrame("Bold heading in corporate blue");
    IPortionFormat fmt = tf.getParagraphs().get(0).getPortions().get(0).getPortionFormat();
    fmt.setFontHeight(28);
    fmt.setFontBold(NullableBool.TRUE);
    fmt.getFillFormat().setFillType(FillType.SOLID);
    fmt.getFillFormat().getSolidFillColor().setColor(new Color(0, 70, 127));
    prs.save("formatted.pptx");
}

Limitaciones actuales

Las siguientes áreas lanzan UnsupportedOperationException en esta versión:

  • Gráficos, SmartArt y objetos OLE
  • Animaciones y transiciones de diapositivas
  • Exportar a PDF, HTML, SVG o formatos de imagen
  • Hipervínculos, configuraciones de acción, macros VBA y firmas digitales

Las partes XML desconocidas encontradas durante la carga se conservan literalmente al guardar, por lo que los archivos PPTX producidos por otras herramientas pueden volver a cargarse de forma segura.

Ver también