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.
.pptx файлы через new Presentation() или new Presentation(path).SlideCollection с помощью addClone(), addEmptySlide(), remove() и removeAt().ShapeType геометрические фигуры через addAutoShape().addConnector().NotesSlideManager.getSlideComments().Portion через getPortionFormat().getFillFormat() и FillType.getEffectFormat().getParagraphFormat().setAlignment().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");
}
Это бесплатная библиотека pure-Java с лицензией MIT для создания, чтения и редактирования презентаций PowerPoint .pptx без необходимости установки Microsoft Office.
.pptx — поддерживаемый формат чтения/записи. Экспорт в PDF, HTML, SVG или изображения недоступен в этой версии.
Нет. Aspose.Slides FOSS — это чисто-Java библиотека без зависимости от Microsoft Office, автоматизации COM или какого-либо проприетарного runtime.
Добавьте Maven‑зависимость org.aspose.slides.foss:aspose-slides-foss:1.0.0 в ваш проект. Дополнительные системные пакеты или нативные расширения не требуются. Требуется JDK 21 или новее.
Да. Библиотека поддерживает внешнюю тень, свечение, размытие и эффекты отражения для любого объекта формы через API EffectFormat.
Да. Presentation реализует AutoCloseable, поэтому всегда используйте try (Presentation prs = new Presentation()) { ... } для надёжного освобождения ресурсов.
Нет. Неизвестные части XML, встречающиеся при загрузке, сохраняются дословно при сохранении, поэтому содержимое, которое библиотека ещё не понимает, никогда не теряется.
Библиотека лицензирована по MIT и размещена на GitHub. Сообщения об ошибках и pull‑request’ы приветствуются.