소개
Aspose.Slides FOSS for Java is now available on Maven Central: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx Java만으로 완전하게 파일을 처리하며, Microsoft Office나 어떤 독점 런타임에도 의존하지 않습니다.
이 라이브러리는 프레젠테이션 파일을 프로그래밍 방식으로 생성하거나 조작해야 하는 개발자를 위해 설계되었습니다: 데이터에서 슬라이드 덱을 자동화하고, 업로드된 PPTX 파일에서 텍스트와 메타데이터를 추출하며, 프레젠테이션 기반 보고 파이프라인을 구축하거나, Spring Boot 애플리케이션에 프레젠테이션 생성 기능을 삽입하는 경우 등. 왜냐하면 aspose-slides-foss 순수 Java이기 때문에 Windows, macOS, Linux 및 Docker 컨테이너에서 동일하게 배포됩니다.
주요 기능
- 전체 라운드트립 PPTX 지원: 모든 파일 열기
.pptx파일을 열고, 내용을 수정한 뒤, 라이브러리가 아직 이해하지 못하는 알 수 없는 XML 부분을 잃지 않고 다시 저장합니다. - 슬라이드 관리: 다음을 사용하여 슬라이드를 추가, 제거 및 반복합니다
prs.getSlides(); 프레젠테이션은 이후에 빈 슬라이드 하나로 시작합니다new Presentation(). - 자동 도형, 표 및 연결선: 다음을 통해 도형을 삽입합니다
slide.getShapes().addAutoShape(), 다음을 통해 표 데이터를 삽입합니다slide.getShapes().addTable(), 그리고 다음을 통해 도형 간 시각적 연결선을 삽입합니다slide.getShapes().addConnector(). - 리치 텍스트 서식: 다음을 사용하여 문자 수준에서 텍스트를 서식 지정합니다
PortionFormat: 글꼴 크기, 굵게, 기울임, 밑줄 및 ARGB 색상을 다음을 통해 지정합니다FillType.SOLID그리고ColorFormat. - 채우기 유형: 적용
FillType.SOLID,GRADIENT,PATTERN, 또는PICTURE어떤 형태든 채웁니다. - 시각 효과: 외부 그림자, 글로우, 부드러운 가장자리, 블러, 반사, 및 내부 그림자를 통해
shape.getEffectFormat(). - 3D formatting: 베벨, 카메라, 라이트 리그, 재질, 및 압출 깊이를 통해
shape.getThreeDFormat(). - 발표자 노트: 각 슬라이드에 노트 텍스트를 통해 첨부합니다.
getNotesSlideManager().addNotesSlide(). - 스레드형 댓글: 작성자 메타데이터와 슬라이드 위치가 포함된 댓글을 추가합니다.
- 삽입된 이미지: 파일 경로, 바이트, 또는 로부터 삽입
InputStream. - 문서 속성: 핵심, 앱, 및 사용자 정의 속성을 읽고 씁니다.
시작하기
Maven 의존성을 추가하세요. Java 21 이상이 필요합니다.
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>
도형을 사용해 첫 번째 프레젠테이션을 만들고 저장하세요:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
public class HelloSlides {
public static void main(String[] args) {
try (Presentation prs = new Presentation()) {
ISlide slide = prs.getSlides().get(0);
IAutoShape shape = slide.getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 400, 120
);
shape.addTextFrame("Hello from Aspose.Slides FOSS!");
prs.save("hello.pptx");
}
}
}
항상 사용하세요 Presentation try-with-resources 블록 내부에서; 이렇게 하면 블록이 종료될 때 모든 내부 리소스가 해제됩니다.
텍스트 서식 예시
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.ITextFrame;
import org.aspose.slides.foss.IPortionFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.export.SaveFormat;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
ShapeType.RECTANGLE, 50, 50, 500, 150
);
ITextFrame tf = shape.addTextFrame("Bold heading in corporate blue");
IPortionFormat fmt = tf.getParagraphs().get(0).getPortions().get(0).getPortionFormat();
fmt.setFontHeight(28);
fmt.setFontBold(NullableBool.TRUE);
fmt.getFillFormat().setFillType(FillType.SOLID);
fmt.getFillFormat().getSolidFillColor().setColor(new Color(0, 70, 127));
prs.save("formatted.pptx");
}
현재 제한 사항
다음 영역에서 예외가 발생합니다 UnsupportedOperationException 이 릴리스에서:
- 차트, SmartArt, 및 OLE 개체
- 애니메이션 및 슬라이드 전환
- PDF, HTML, SVG 또는 이미지 형식으로 내보내기
- 하이퍼링크, 동작 설정, VBA 매크로 및 디지털 서명
로드 중에 발견된 알 수 없는 XML 파트는 저장 시 그대로 보존되므로, 다른 도구에서 생성된 PPTX 파일도 안전하게 라운드트립됩니다.