소개
Aspose.Slides FOSS for Java은 Java 개발자가 Microsoft Office에 의존하지 않고 PowerPoint 프레젠테이션을 만들고 조작할 수 있게 해주는 무료 오픈 소스 라이브러리입니다. 이 라이브러리는 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이 포함됩니다. 작성자를 추가하고, 특정 슬라이드와 위치에 댓글을 첨부하며, 기존 주석을 다시 읽어올 수 있습니다. 댓글 데이터는 PPTX 패키지의 ppt/commentAuthors.xml 및 ppt/comments/*.xml 파트에 저장됩니다.
빠른 시작
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 – 전체 클래스 및 메서드 문서