Часто задаваемые вопросы
Часто задаваемые вопросы
Как установить 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);