Wprowadzenie

Aspose.Slides FOSS for Java to darmowa, otwarto‑źródłowa biblioteka, która umożliwia programistom Java tworzenie i manipulowanie prezentacjami PowerPoint bez żadnej zależności od Microsoft Office. Biblioteka jest dostarczana w pakiecie org.aspose.slides.foss i jest przeznaczona dla Java 21 i nowszych.

Projekt jest udostępniony na licencji MIT, więc możesz go używać zarówno w projektach prywatnych, jak i komercyjnych, bez kosztów i bez klucza API. Zapewnia bogaty model obiektowy dla slajdów, kształtów, tekstu, tabel, obrazów, komentarzy i właściwości dokumentu, oparty na bezpośredniej manipulacji formatem pakietu Office Open XML.

Z 273 klasami, ponad 2,600 metodami i 42 wyliczeniami, core API obejmuje elementy budulcowe, których potrzebujesz, aby zautomatyzować przepływy pracy prezentacji w dowolnej aplikacji Java.


Co w zestawie

Cykl życia prezentacji

Klasa Presentation jest punktem wejścia dla każdej operacji. Możesz utworzyć pustą prezentację i zapisać wynik na dysku lub do OutputStream w różnych formatach. Klasa implementuje AutoCloseable, więc naturalnie współpracuje z blokami 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);
}

Zarządzanie slajdami

SlideCollection zapewnia pełną kontrolę nad zestawem slajdów. Możesz dodawać puste slajdy za pomocą addEmptySlide(), duplikować istniejące slajdy przy użyciu addClone(), wstawiać slajdy pod określonym indeksem przy pomocy insertEmptySlide(), usuwać slajdy przez referencję lub indeks oraz iterować po kolekcji.

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());
}

Kształty i AutoKształty

Klasa AutoShape reprezentuje najczęstszy obiekt rysowalny na slajdzie. Kształty tworzysz za pomocą IShapeCollection.addAutoShape(), określając stałą ShapeType (taką jak ShapeType.RECTANGLE) oraz współrzędne pozycji. Każdy AutoShape udostępnia TextFrame dla treści tekstowej i FillFormat dla stylizacji wizualnej.

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());
}

Tekst i akapity

Tekst sformatowany jest modelowany jako hierarchia obiektów TextFrame, ParagraphCollection, Paragraph, PortionCollection i Portion. Możesz ustawić zwykły tekst w ramce bezpośrednio za pomocą TextFrame.setText(), lub zbudować wieloczęściowe akapity, dodając poszczególne instancje Portion z odrębnym formatowaniem.

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());
}

Właściwości dokumentu

Klasa DocumentProperties udostępnia standardowe pola metadanych, takie jak tytuł, autor, temat, słowa kluczowe, kategoria i znaczniki czasu. Właściwości są przechowywane w częściach podstawowych i rozszerzonych właściwości PPTX i przetrwają cykle zapisu/odczytu.

try (Presentation pres = new Presentation()) {
    IDocumentProperties props = pres.getDocumentProperties();
    props.setTitle("Quarterly Report");
    props.setAuthor("Engineering Team");
    pres.save("report.pptx", SaveFormat.PPTX);
}

Komentarze i adnotacje

Podsystem komentarzy zawiera CommentAuthorCollection i CommentCollection. Możesz dodawać autorów, dołączać komentarze do konkretnych slajdów i pozycji oraz odczytywać istniejące adnotacje. Dane komentarzy są przechowywane w częściach ppt/commentAuthors.xml i ppt/comments/*.xml pakietu PPTX.


Szybki start

Dodaj zależność Maven do swojego pom.xml:

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Następnie utwórz i zapisz prezentację:

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);
        }
    }
}

Obsługiwane formaty

Wyliczenie SaveFormat definiuje każdy format wyjściowy, który biblioteka może zapisać. Poniższa tabela zawiera potwierdzone wpisy.

FormatRozszerzenieZapis
PPTX.pptxTak
PPTM.pptmTak
PPSX.ppsxTak
PPSM.ppsmTak
POTX.potxTak
POTM.potmTak
ODP.odpTak
OTP.otpTak
FODP.fodpTak
PPT.pptTak
PPS.ppsTak
POT.potTak
PDF.pdfTak
XPS.xpsTak
HTML.htmlTak
HTML5.htmlTak
SVG.svgTak
TIFF.tiffTak
PNG.pngTak
JPEG.jpegTak
BMP.bmpTak
GIF.gifTak
MD.mdTak

Wymienione powyżej formaty są potwierdzonymi celami eksportu zdefiniowanymi w wyliczeniu SaveFormat.


Open Source i licencjonowanie

Aspose.Slides FOSS for Java jest dystrybuowany na licencji MIT. Pełny kod źródłowy jest dostępny na GitHub pod adresem Aspose.Slides-FOSS-for-Java. Masz swobodę używać, modyfikować i rozpowszechniać bibliotekę w dowolnym projekcie bez opłat licencyjnych ani kluczy.


Rozpoczęcie

Gotowy, aby zanurzyć się głębiej? Oto zasoby, które pomogą Ci rozpocząć: