Поширені запитання
Поширені запитання
Як встановити 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);
}У які формати файлів я можу зберігати?
Перелічений enum SaveFormat визначає константи для багатьох форматів — PPTX, PDF, HTML, SVG, JPEG, PNG та інші — для сумісності API з комерційною версією. Під час виконання у цій FOSS‑версії всі перевантаження save() ігнорують аргумент формату і завжди записують вихід у форматі PPTX. Передача SaveFormat.PDF компілюється правильно, але створює файл .pptx, а не .pdf.
import org.aspose.slides.foss.export.SaveFormat;
prs.save("output.pptx", SaveFormat.PPTX);Експорт у формати, відмінні від PPTX, функціонально недоступний у цьому випуску. Використовуйте SaveFormat.PPTX для всіх операцій збереження.
Чи можу я відкривати .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?
Ні. Charts, SmartArt, OLE objects, animations, transitions, hyperlinks, VBA macros, і digital signatures не реалізовані у цій редакції та викликають 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);