1. Продукты
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for Java

Aspose.Slides FOSS для Java

Создавайте, читайте и редактируйте презентации PowerPoint из Java — бесплатно и с открытым исходным кодом, без зависимости от Office.

Открытая библиотека Java для презентаций PowerPoint

Aspose.Slides FOSS for Java — это библиотека с лицензией MIT, полностью написанная на Java, предназначенная для работы с файлами PowerPoint .pptx. Добавьте единственную зависимость Maven и сразу начните создавать, читать и редактировать презентации без установки Microsoft Office или какого-либо проприетарного runtime.

Библиотека предоставляет API презентаций, построенный вокруг Presentation, Slide, Shape, TextFrame, Paragraph и Portion, концептуальной модели, используемой самим PowerPoint. Добавляйте и удаляйте слайды, вставляйте AutoShapes, Tables и Connectors, форматируйте текст на уровне символов с помощью жирного, курсивного, размера шрифта и цвета, применяйте сплошные или градиентные заливки и добавляйте визуальные эффекты (shadow, glow, blur, reflection).

Класс Presentation реализует AutoCloseable, поэтому используйте try-with-resources для надёжного освобождения ресурсов. Неизвестные части XML, встречающиеся при загрузке, сохраняются дословно при сохранении, так что при круговом проходе содержимое, которое библиотека ещё не понимает, никогда не уничтожается. Для дополнительных функций и поддержки см. Aspose.Slides for Java enterprise edition.

API презентаций и слайдов

  • Create and open PPTX: Создавайте новые презентации или открывайте существующие .pptx файлы через new Presentation() или new Presentation(path).
  • Добавить и удалить слайды: Программно управлять SlideCollection с помощью addClone(), addEmptySlide(), remove() и removeAt().
  • AutoShapes: Вставляйте прямоугольники, эллипсы, линии и другие ShapeType геометрические фигуры через addAutoShape().
  • Таблицы и соединители: Добавьте структурированные формы таблиц и соединительные линии между формами через addConnector().
  • Заметки докладчика: Читайте и записывайте примечания к каждому слайду через NotesSlideManager.
  • Ветвистые комментарии: Доступ к цепочкам комментариев уровня слайда с помощью getSlideComments().

Где Aspose.Slides FOSS может использоваться

  • Создание отчетов: Создавайте фирменные наборы слайдов из источников данных без Office.
  • Автоматизация шаблонов: Заполняйте шаблоны PPTX динамическим контентом в конвейерах CI/CD.
  • Миграция контента: Читать существующие презентации и реструктурировать или переоформлять слайды.
  • Безсерверные бэкенды: Обрабатывайте файлы PPTX внутри Docker‑контейнеров или функций Lambda.
  • Пакетная обработка: Применяйте единообразные изменения форматирования к большим библиотекам слайдов.

Форматирование текста и визуальные эффекты

  • Character-level formatting: Применяйте полужирный, курсив, размер шрифта и цвет к отдельным объектам Portion через getPortionFormat().
  • Сплошные и градиентные заливки: Установите заливку фигуры сплошным цветом или линейным градиентом с несколькими остановками, используя getFillFormat() и FillType.
  • Эффекты тени и свечения: Применяйте внешнюю тень, свечение, размытие и отражение к любой фигуре через getEffectFormat().
  • Выравнивание абзаца: Установите выравнивание слева, по центру, справа или по ширине для каждого абзаца, используя getParagraphFormat().setAlignment().
  • Round-trip safe: Неизвестные части XML сохраняются дословно при повторном сохранении.

Опыт разработчика

Aspose.Slides FOSS устанавливается с единственной зависимостью Maven (org.aspose.slides.foss:aspose-slides-foss). Библиотека полностью написана на Java без нативных расширений для компиляции и без необходимости установки системных пакетов.

API отражает собственную объектную модель PowerPoint (Presentation, Slide, Shape, TextFrame, Paragraph, Portion), поэтому любой, знакомый с объектной моделью PowerPoint, может сразу использовать библиотеку. Она лицензирована по MIT, с открытым исходным кодом на GitHub и требует JDK 21 или новее.

Создать презентацию и добавить фигуру

Используйте try-with-resources, чтобы гарантировать, что Presentation всегда закрывается и ресурсы освобождаются. addAutoShape() принимает перечисление ShapeType, затем позицию x/y и ширину/высоту в пунктах. Вызовите addTextFrame(), чтобы создать текстовый фрейм и установить начальный текст одним вызовом — не вызывайте getTextFrame() до addTextFrame(), так как фрейм равен null до создания.

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

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);

    // Add a rectangle AutoShape
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 400, 150
    );
    shape.addTextFrame("Hello, Aspose.Slides!");

    prs.save("output.pptx");
}
 ```xml
<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>
 

Форматировать текст и применить эффект заливки

Форматирование текста работает на уровне Portion — наименьшей единицы последовательности символов. Откройте сохранённый файл, перейдите к первой части первого абзаца и задайте свойства шрифта с помощью геттеров и сеттеров. Заполнение фигуры независимо: установите FillType в SOLID и назначьте цвет через getSolidFillColor().setColor().

import org.aspose.slides.foss.*;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation("output.pptx")) {
    IAutoShape shape = (IAutoShape) prs.getSlides().get(0).getShapes().get(0);
    IPortion portion = shape.getTextFrame()
        .getParagraphs().get(0).getPortions().get(0);

    // Bold, 18pt, dark-blue text
    portion.getPortionFormat().setFontBold(NullableBool.TRUE);
    portion.getPortionFormat().setFontHeight(18);
    portion.getPortionFormat().getFillFormat()
        .getSolidFillColor().setColor(new Color(0, 0, 139));

    // Solid background fill on the shape
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor()
        .setColor(new Color(240, 248, 255));

    prs.save("formatted.pptx");
}
 ```java
import org.aspose.slides.foss.*;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation("output.pptx")) {
    IAutoShape shape = (IAutoShape) prs.getSlides().get(0).getShapes().get(0);
    IPortion portion = shape.getTextFrame()
        .getParagraphs().get(0).getPortions().get(0);

    // Bold, 18pt, dark-blue text
    portion.getPortionFormat().setFontBold(NullableBool.TRUE);
    portion.getPortionFormat().setFontHeight(18);
    portion.getPortionFormat().getFillFormat()
        .getSolidFillColor().setColor(new Color(0, 0, 139));

    // Solid background fill on the shape
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor()
        .setColor(new Color(240, 248, 255));

    prs.save("formatted.pptx");
}
 

Часто задаваемые вопросы

Что такое Aspose.Slides FOSS для Java?

Это бесплатная библиотека pure-Java с лицензией MIT для создания, чтения и редактирования презентаций PowerPoint .pptx без необходимости установки Microsoft Office.

Какие форматы файлов поддерживаются?

.pptx — поддерживаемый формат чтения/записи. Экспорт в PDF, HTML, SVG или изображения недоступен в этой версии.

Требуется ли Microsoft Office или PowerPoint?

Нет. Aspose.Slides FOSS — это чисто-Java библиотека без зависимости от Microsoft Office, автоматизации COM или какого-либо проприетарного runtime.

Как установить его?

Добавьте Maven‑зависимость org.aspose.slides.foss:aspose-slides-foss:1.0.0 в ваш проект. Дополнительные системные пакеты или нативные расширения не требуются. Требуется JDK 21 или новее.

Могу ли я применить визуальные эффекты, такие как тень и свечение?

Да. Библиотека поддерживает внешнюю тень, свечение, размытие и эффекты отражения для любого объекта формы через API EffectFormat.

Рекомендуется ли шаблон try-with-resources?

Да. Presentation реализует AutoCloseable, поэтому всегда используйте try (Presentation prs = new Presentation()) { ... } для надёжного освобождения ресурсов.

Приведёт ли круговой проход PPTX к повреждению неизвестного содержимого?

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

Где можно найти исходный код?

Библиотека лицензирована по MIT и размещена на GitHub. Сообщения об ошибках и pull‑request’ы приветствуются.

  

Ресурсы поддержки и обучения

 Русский