Вступ
Aspose.Slides FOSS for Java — це безкоштовна, з відкритим вихідним кодом бібліотека, яка дозволяє розробникам Java створювати та маніпулювати презентаціями PowerPoint без будь‑якої залежності від Microsoft Office. Бібліотека постачається у пакеті org.aspose.slides.foss і орієнтована на Java 21 та вище.
Проект випущений під ліцензією MIT, тому ви можете використовувати його як у особистих, так і у комерційних проектах безкоштовно і без ключа API. Він надає багату модель об’єктів для слайдів, форм, тексту, таблиць, зображень, коментарів та властивостей документа, що підтримується прямим маніпулюванням форматом пакету Office Open XML.
З 273 класами, понад 2,600 методами та 42 перерахуваннями, ядровий API охоплює будівельні блоки, які вам потрібні для автоматизації робочих процесів презентацій у будь‑якому Java‑додатку.
Що включено
Життєвий цикл презентації
Клас Presentation є точкою входу для кожної операції. Ви можете створити порожню презентацію та зберегти результат на диск або в OutputStream у різних форматах. Клас реалізує AutoCloseable, тому він природно працює з блоками try-with-resources.
import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;
try (Presentation pres = new Presentation()) {
// A new presentation starts with one blank slide
System.out.println("Slides: " + pres.getSlides().size());
pres.save("output.pptx", SaveFormat.PPTX);
}
Керування слайдами
SlideCollection забезпечує повний контроль над набором слайдів. Ви можете додавати порожні слайди за допомогою addEmptySlide(), дублювати існуючі слайди за допомогою addClone(), вставляти слайди за певним індексом за допомогою insertEmptySlide(), видаляти слайди за посиланням або індексом і перебирати колекцію.
try (Presentation pres = new Presentation()) {
ILayoutSlide layout = pres.getLayoutSlides().get(0);
pres.getSlides().addEmptySlide(layout);
pres.getSlides().addClone(pres.getSlides().get(0));
System.out.println("Total slides: " + pres.getSlides().size());
}
Фігури та автофігури
Клас AutoShape представляє найпоширеніший об’єкт, який можна малювати на слайді. Ви створюєте форми за допомогою IShapeCollection.addAutoShape(), вказуючи константу ShapeType (наприклад, ShapeType.RECTANGLE) та координати позиції. Кожен AutoShape надає TextFrame для текстового вмісту та FillFormat для візуального оформлення.
try (Presentation pres = new Presentation()) {
ISlide slide = pres.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 300, 100, false);
ITextFrame tf = shape.addTextFrame("Hello from Aspose.Slides FOSS");
System.out.println(tf.getText());
}
Текст і абзаци
Текст з форматуванням моделюється як ієрархія об’єктів TextFrame, ParagraphCollection, Paragraph, PortionCollection та Portion. Ви можете встановити простий текст у кадрі безпосередньо за допомогою TextFrame.setText(), або створювати багаторядкові абзаци, додаючи окремі екземпляри Portion з різним форматуванням.
try (Presentation pres = new Presentation()) {
ISlide slide = pres.getSlides().get(0);
IAutoShape shape = slide.getShapes()
.addAutoShape(ShapeType.RECTANGLE, 50, 50, 400, 100, false);
ITextFrame tf = shape.addTextFrame("First run ");
Portion extra = new Portion("second run");
tf.getParagraphs().get(0).getPortions().add(extra);
System.out.println(tf.getText());
}
Властивості документа
Клас DocumentProperties надає стандартні поля метаданих, такі як назва, автор, тема, ключові слова, категорія та мітки часу. Властивості зберігаються у ядрі PPTX та у частинах розширених властивостей і зберігаються під час циклів збереження/перезавантаження.
try (Presentation pres = new Presentation()) {
IDocumentProperties props = pres.getDocumentProperties();
props.setTitle("Quarterly Report");
props.setAuthor("Engineering Team");
pres.save("report.pptx", SaveFormat.PPTX);
}
Коментарі та анотації
Підсистема коментарів включає CommentAuthorCollection та CommentCollection. Ви можете додавати авторів, прикріплювати коментарі до конкретних слайдів і позицій, а також читати існуючі анотації. Дані коментарів зберігаються у частинах ppt/commentAuthors.xml та ppt/comments/*.xml пакету PPTX.
Швидкий старт
Додайте залежність Maven до вашого pom.xml:
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>
Потім створіть і збережіть презентацію:
import org.aspose.slides.foss.*;
import org.aspose.slides.foss.export.SaveFormat;
public class QuickStart {
public static void main(String[] args) {
try (Presentation pres = new Presentation()) {
ISlide slide = pres.getSlides().get(0);
// Add a title shape
IAutoShape title = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 30, 600, 60, false);
title.addTextFrame("Aspose.Slides FOSS for Java");
// Add a content shape
IAutoShape body = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 120, 600, 300, false);
body.addTextFrame(
"This presentation was created entirely in Java "
+ "using a free, open-source library.");
pres.save("quick-start.pptx", SaveFormat.PPTX);
}
}
}
Підтримувані формати
Перелічення SaveFormat визначає всі формати виводу, які бібліотека може записувати. Нижче наведено підтверджені записи.
| Формат | Розширення | Запис |
|---|---|---|
| PPTX | .pptx | Так |
| PPTM | .pptm | Так |
| PPSX | .ppsx | Так |
| PPSM | .ppsm | Так |
| POTX | .potx | Так |
| POTM | .potm | Так |
| ODP | .odp | Так |
| OTP | .otp | Так |
| FODP | .fodp | Так |
| PPT | .ppt | Так |
| PPS | .pps | Так |
| POT | .pot | Так |
| Так | ||
| XPS | .xps | Так |
| HTML | .html | Так |
| HTML5 | .html | Так |
| SVG | .svg | Так |
| TIFF | .tiff | Так |
| PNG | .png | Так |
| JPEG | .jpeg | Так |
| BMP | .bmp | Так |
| GIF | .gif | Так |
| MD | .md | Так |
Перераховані вище формати є підтвердженими цілями експорту, визначеними в enum SaveFormat.
Відкритий код та ліцензування
Aspose.Slides FOSS for Java розповсюджується під ліцензією MIT. Повний вихідний код доступний на GitHub за адресою Aspose.Slides-FOSS-for-Java. Ви вільні використовувати, змінювати та розповсюджувати бібліотеку в будь‑якому проєкті без роялті чи ліцензійних ключів.
Початок роботи
Готові зануритися глибше? Ось ресурси, які допоможуть вам розпочати:
- Developer Guide – покрокові інструкції та підручники для кожної функціональної області
- Knowledge Base – статті типу «як це зробити» та часто задавані питання
- API Reference – повна документація класів і методів