Въведение
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 | Да |
Форматите, изброени по-горе, са потвърдени цели за експортиране, дефинирани в изброяването SaveFormat.
Отворен код и лицензиране
Aspose.Slides FOSS for Java се разпространява под лиценз MIT. Пълният изходен код е достъпен в GitHub на Aspose.Slides-FOSS-for-Java. Свободни сте да използвате, модифицирате и разпространявате библиотеката във всеки проект без роялти или лицензни ключове.
Започване
Готови ли сте да се потопите по‑дълбоко? Ето ресурси, които ще ви помогнат да започнете:
- Developer Guide – ръководства и уроци за всяка област на функциите
- Knowledge Base – статии с инструкции и често задавани въпроси
- API Reference – пълна документация за класове и методи