Aspose.Slides FOSS for Java는 PowerPoint .pptx 파일을 다루기 위한 MIT 라이선스의 순수 Java 라이브러리입니다. Maven 의존성을 하나 추가하면 Microsoft Office나 어떤 독점 런타임도 설치하지 않고 즉시 프레젠테이션을 만들고, 읽고, 편집할 수 있습니다.
이 라이브러리는 PowerPoint 자체에서 사용하는 개념 모델인 Presentation, Slide, Shape, TextFrame, Paragraph, Portion을 중심으로 구성된 Presentation API를 제공합니다. 슬라이드를 추가·제거하고, AutoShapes, Tables, Connectors를 삽입하며, 굵게, 기울임, 글꼴 크기 및 색상 등 문자 수준에서 텍스트를 서식 지정하고, 단색 또는 그라디언트 채우기를 적용하고, 시각 효과(그림자, 글로우, 블러, 반사)를 추가할 수 있습니다.
Presentation 클래스는 AutoCloseable을 구현하므로, 안정적인 정리를 위해 try-with-resources를 사용하십시오. 로드 중에 발견된 알 수 없는 XML 파트는 저장 시 그대로 보존되므로, 라운드 트립을 해도 라이브러리가 아직 이해하지 못하는 콘텐츠가 파괴되지 않습니다. 이 라이브러리는 JDK 21 이상이 필요하며, 컴파일할 네이티브 확장이 없습니다.
.pptx files via new Presentation() or new Presentation(path).SlideCollection with addClone(), addEmptySlide(), remove(), and removeAt().ShapeType geometries via addAutoShape().addConnector().NotesSlideManager.getSlideComments().Portion objects via getPortionFormat().getFillFormat() and FillType.getEffectFormat().getParagraphFormat().setAlignment().Aspose.Slides FOSS installs with a single Maven dependency (org.aspose.slides.foss:aspose-slides-foss). The library is pure Java with no native extensions to compile and no system packages to install.
The API mirrors PowerPoint’s own object model (Presentation, Slide, Shape, TextFrame, Paragraph, Portion), so anyone familiar with the PowerPoint object model can use the library immediately. It is MIT-licensed, open-source on GitHub, and requires JDK 21 or later.
Use try-with-resources to ensure the Presentation is always closed and resources are freed. addAutoShape() takes a ShapeType enum, then x/y position and width/height in points. Call addTextFrame() to create the text frame and set the initial text in one call — do not call getTextFrame() before addTextFrame() as the frame is null until created.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>
import org.aspose.slides.foss.*;
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
// Add a rectangle AutoShape
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 400, 150
);
shape.addTextFrame("Hello, Aspose.Slides!");
prs.save("output.pptx");
}
Text formatting works at the Portion level — the smallest unit of a run of characters. Open the saved file, navigate to the first portion of the first paragraph, and set font properties via getters and setters. Shape fill is independent: set FillType to SOLID and assign a color via getSolidFillColor().setColor().
import org.aspose.slides.foss.*;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation("output.pptx")) {
IShape shape = prs.getSlides().get(0).getShapes().get(0);
IPortion portion = shape.getTextFrame()
.getParagraphs().get(0).getPortions().get(0);
// Bold, 18pt, dark-blue text
portion.getPortionFormat().setFontBold(NullableBool.TRUE);
portion.getPortionFormat().setFontHeight(18);
portion.getPortionFormat().getFillFormat()
.getSolidFillColor().setColor(new Color(0, 0, 139));
// Solid background fill on the shape
shape.getFillFormat().setFillType(FillType.SOLID);
shape.getFillFormat().getSolidFillColor()
.setColor(new Color(240, 248, 255));
prs.save("formatted.pptx");
}
It is a free, MIT-licensed pure-Java library for creating, reading, and editing PowerPoint .pptx presentations without requiring Microsoft Office.
PPTX is the supported read/write format. Export to PDF, HTML, SVG, or images is not available in this edition.
No. Aspose.Slides FOSS is a pure-Java library with no dependency on Microsoft Office, COM automation, or any proprietary runtime.
Add the Maven dependency org.aspose.slides.foss:aspose-slides-foss:1.0.0 to your project. No additional system packages or native extensions are required. JDK 21 or later is required.
Yes. The library supports outer shadow, glow, blur, and reflection effects on any shape object via the EffectFormat API.
Yes. Presentation implements AutoCloseable, so always use try (Presentation prs = new Presentation()) { ... } for reliable resource cleanup.
No. Unknown XML parts encountered during load are preserved verbatim on save, so content the library does not yet understand is never lost.
The library is MIT-licensed and hosted on GitHub. Bug reports and pull requests are welcome.