Как начать работу с Aspose.Slides FOSS для Java

Как начать работу с Aspose.Slides FOSS для Java

aspose-slides-foss for Java — бесплатная библиотека с лицензией MIT для создания и редактирования файлов PowerPoint .pptx — без необходимости Microsoft Office, доступна в Maven Central.

Пошаговое руководство

Шаг 1: Добавьте зависимость Maven

Добавьте зависимость в ваш pom.xml (требуется Java 21 или новее):

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

Проверьте, что пакет правильно разрешается, собрав проект:

mvn dependency:resolve

Шаг 2: Импортировать необходимые классы

Импортируйте необходимые классы для загрузки презентаций и сохранения:

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.ShapeType;
import org.aspose.slides.foss.FillType;

Шаг 3: Создать презентацию

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

import org.aspose.slides.foss.Presentation;

try (Presentation prs = new Presentation()) {
    System.out.println("Slides: " + prs.getSlides().size());
    prs.save("new_presentation.pptx");
}

Шаг 4: Добавить форму с текстом

Используйте slide.getShapes().addAutoShape(), чтобы вставить прямоугольник, затем вызовите addTextFrame() чтобы добавить текстовое содержимое:

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.NullableBool;

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 400, 150
    );
    ITextFrame tf = shape.addTextFrame("Hello from Aspose.Slides FOSS!");
    IPortionFormat fmt = tf.getParagraphs().get(0).getPortions().get(0).getPortionFormat();
    fmt.setFontHeight(24);
    fmt.setFontBold(NullableBool.TRUE);
    prs.save("with_shape.pptx");
}

Шаг 5: Применить заливку и сохранить

Установите сплошной цвет заливки для фигуры перед сохранением:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;

try (Presentation prs = new Presentation()) {
    IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
        ShapeType.RECTANGLE, 100, 100, 400, 200
    );
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor().setColor(new Color(70, 130, 180));
    shape.addTextFrame("Styled shape");
    prs.save("styled.pptx");
}

Общие проблемы и решения

ClassNotFoundException for org.aspose.slides.foss.Presentation
Зависимость Maven не разрешена. Запустите mvn dependency:resolve и проверьте, что
артефакт доступен в Maven Central. Проверьте версию в pom.xml.

UnsupportedOperationException при вызове некоторых методов Некоторые функции (диаграммы, анимации, экспорт PDF) вызывают UnsupportedOperationException в этой версии. Проверьте раздел известных ограничений в справочнике API перед использованием расширенных функций.

Координаты фигуры выглядят неверно
Координаты и размеры указаны в EMU (English Metric Units). Один пункт примерно
12700 EMU. Слайд по умолчанию имеет размеры 9144000 × 6858000 EMU.

Файл не найден при загрузке существующего PPTX
Укажите абсолютный путь или убедитесь, что рабочий каталог установлен правильно:

import java.nio.file.Paths;
String path = Paths.get("presentations", "existing.pptx").toAbsolutePath().toString();
try (Presentation prs = new Presentation(path)) { ... }

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

Требует ли aspose-slides-foss Microsoft Office?

Нет. Библиотека создает и читает файлы .pptx нативно на чистом Java без зависимости от Microsoft Office, COM‑автоматизации или Windows API.

Какие версии Java поддерживаются?

Java 21 или новее. Библиотека работает на Windows, macOS, Linux и в Docker‑контейнерах.

Библиотека бесплатна для коммерческого использования?

Да. Он выпущен под лицензией MIT. Вы можете использовать, модифицировать и распространять его для любой цели, включая коммерческие приложения.

Могу ли я загрузить существующий файл PPTX?

Да. Передайте путь к файлу в конструктор Presentation:

try (Presentation prs = new Presentation("existing.pptx")) {
    System.out.println("Loaded " + prs.getSlides().size() + " slides");
    prs.save("copy.pptx");
}

Нужно ли явно закрывать презентацию?

Да. Presentation реализует AutoCloseable. Всегда используйте try-with-resources (try (Presentation prs = new Presentation()) { ... }), чтобы гарантировать очистку.

См. также

 Русский