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

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

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

Как установить Aspose.Slides FOSS?

Добавьте зависимость Maven в ваш pom.xml. Требуется 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;

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

Не требуется Microsoft Office или другие системные среды выполнения.


Почему я должен вызывать dispose() на Presentation?

Класс Presentation управляет внутренними ресурсами OPC‑пакета. Если не вызвать dispose(), эти ресурсы не освобождаются, что может привести к утечкам памяти или блокировке файлов. Всегда используйте try-finally:

Presentation prs = new Presentation("input.pptx");
try {
    // work here
    prs.save("output.pptx", SaveFormat.PPTX);
} finally {
    prs.dispose();
}

В качестве альтернативы используйте try-with-resources, поскольку Presentation реализует AutoCloseable:

try (Presentation prs = new Presentation("input.pptx")) {
    prs.save("output.pptx", SaveFormat.PPTX);
}

В какие форматы файлов я могу сохранять?

Поддерживается только PPTX:

import org.aspose.slides.foss.export.SaveFormat;

prs.save("output.pptx", SaveFormat.PPTX);

Экспорт в PDF, HTML, SVG или форматы изображений (PNG, JPEG) недоступен в этой версии.


Могу ли я открыть .ppt (старый PowerPoint 97‑2003) файлы?

Нет. Поддерживаются только файлы .pptx (Office Open XML). Устаревший двоичный формат .ppt не обрабатывается этой библиотекой.


Как получить доступ к слайдам?

Слайды — это коллекция с нулевой индексацией, доступная через prs.getSlides():

ISlide firstSlide = prs.getSlides().get(0);
int slideCount = prs.getSlides().size();

Как добавить второй слайд?

Используйте prs.getSlides().addEmptySlide() с макетом:

try (Presentation prs = new Presentation()) {
    ILayoutSlide layout = prs.getLayoutSlides().get(0);
    prs.getSlides().addEmptySlide(layout);
    ISlide slide2 = prs.getSlides().get(1);
    prs.save("two-slides.pptx", SaveFormat.PPTX);
}

Как установить цвет фона слайда?

Цвет фона слайда не поддерживается в этой версии Aspose.Slides FOSS. В этой библиотеке нет метода getBackground() в ISlide или в любом другом классе. Фон слайда фиксирован, когда презентация создаётся из шаблона. В будущей версии может быть добавлено управление фоном.


Как использовать NullableBool?

NullableBool — это три‑статный enum, используемый для свойств форматирования. Используйте NullableBool.TRUE (а не Java true) для жирного, курсивного и подобных свойств:

import org.aspose.slides.foss.NullableBool;

fmt.setFontBold(NullableBool.TRUE);
fmt.setFontItalic(NullableBool.FALSE);

Почему установка цвета текста не имеет эффекта?

Вы также должны установить fillType в FillType.SOLID перед назначением цвета:

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

fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 200, 0, 0));

Могу ли я использовать диаграммы или SmartArt?

Нет. Диаграммы, SmartArt, OLE‑объекты, анимации, переходы, гиперссылки, макросы VBA и цифровые подписи не реализованы в этой версии и вызывают UnsupportedOperationException.


Является ли библиотека потокобезопасной?

Каждый объект Presentation независим. Создание и использование отдельных экземпляров Presentation из разных потоков безопасно, при условии что вы не делите один объект Presentation между потоками без внешней синхронизации.


Как вставить изображение?

Прочитайте байты изображения и добавьте их в prs.getImages(), затем создайте PictureFrame:

import org.aspose.slides.foss.ShapeType;

byte[] imageData = java.nio.file.Files.readAllBytes(
    java.nio.file.Paths.get("logo.png")
);
IPPImage image = prs.getImages().addImage(imageData);
slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 200, 150, image);

См. также

 Русский