Введение

Aspose.Slides FOSS for Java is now available on Maven Central: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx файлы полностью в Java, без зависимости от Microsoft Office или любого проприетарного runtime.

Библиотека предназначена для разработчиков, которым необходимо программно генерировать или манипулировать файлами презентаций: автоматизировать создание наборов слайдов из данных, извлекать текст и метаданные из загруженных PPTX‑файлов, строить конвейеры отчетности на основе презентаций или встраивать создание презентаций в приложения Spring Boot. Потому что aspose-slides-foss является чистым Java, он разворачивается одинаково на Windows, macOS, Linux и в Docker‑контейнерах.

Ключевые возможности

  • Полная поддержка обратного цикла PPTX: Откройте любой .pptx файл, измените его содержимое и сохраните обратно, не теряя неизвестные XML‑части, которые библиотека пока не понимает.
  • Управление слайдами: Добавляйте, удаляйте и перебирайте слайды с помощью prs.getSlides(); презентация начинается с одного пустого слайда после new Presentation().
  • AutoShapes, таблицы и соединители: Вставить фигуры через slide.getShapes().addAutoShape(), табличные данные через slide.getShapes().addTable(), и визуальные соединители между фигурами через slide.getShapes().addConnector().
  • Форматирование Rich text: Форматировать текст на уровне символов с помощью PortionFormat: размер шрифта, полужирный, курсив, подчеркивание и цвет ARGB через FillType.SOLID и ColorFormat.
  • Типы заливки: Применить FillType.SOLID, GRADIENT, PATTERN, или PICTURE заполняет любую форму.
  • Визуальные эффекты: Внешняя тень, свечение, мягкий край, размытие, отражение и внутренняя тень через shape.getEffectFormat().
  • 3D formatting: Фаска, камера, световая установка, материал и глубина выдавливания через shape.getThreeDFormat().
  • Заметки докладчика: Прикрепить текст заметок к каждому слайду через getNotesSlideManager().addNotesSlide().
  • Ветвящиеся комментарии: Добавлять комментарии с метаданными автора и позицией слайда.
  • Встроенные изображения: Встраивать из пути к файлу, байтов или InputStream.
  • Свойства документа: Читать и записывать основные, приложенные и пользовательские свойства.

Начало работы

Добавьте зависимость Maven. Требуется Java 21 или новее.

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

Создайте свою первую презентацию с фигурой и сохраните её:

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

Всегда используйте Presentation внутри блока try-with-resources; это гарантирует, что все внутренние ресурсы будут освобождены при выходе из блока.

Пример форматирования текста

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

Текущие ограничения

Следующие области бросают UnsupportedOperationException в этом выпуске:

  • Диаграммы, SmartArt и OLE‑объекты
  • Анимации и переходы слайдов
  • Экспорт в PDF, HTML, SVG или форматы изображений
  • Гиперссылки, настройки действий, макросы VBA и цифровые подписи

Неизвестные XML‑части, обнаруженные при загрузке, сохраняются дословно при сохранении, поэтому PPTX‑файлы, созданные другими инструментами, безопасно проходят цикл загрузки‑сохранения.

См. также