Въведение

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Да
PDF.pdfДа
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 – пълна документация за класове и методи