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.
| Format | Rozszerzenie | Zapis |
|---|---|---|
| PPTX | .pptx | Tak |
| PPTM | .pptm | Tak |
| PPSX | .ppsx | Tak |
| PPSM | .ppsm | Tak |
| POTX | .potx | Tak |
| POTM | .potm | Tak |
| ODP | .odp | Tak |
| OTP | .otp | Tak |
| FODP | .fodp | Tak |
| PPT | .ppt | Tak |
| PPS | .pps | Tak |
| POT | .pot | Tak |
| Tak | ||
| XPS | .xps | Tak |
| HTML | .html | Tak |
| HTML5 | .html | Tak |
| SVG | .svg | Tak |
| TIFF | .tiff | Tak |
| PNG | .png | Tak |
| JPEG | .jpeg | Tak |
| BMP | .bmp | Tak |
| GIF | .gif | Tak |
| MD | .md | Tak |
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ąć:
- Developer Guide – przewodniki i samouczki dla każdego obszaru funkcji
- Knowledge Base – artykuły instruktażowe i najczęściej zadawane pytania
- API Reference – pełna dokumentacja klas i metod