소개

Aspose.Slides FOSS for Java가 이제 Maven Central에서 제공됩니다: Microsoft Office나 어떤 독점 런타임에도 의존하지 않고 Java만으로 PowerPoint .pptx 파일을 생성, 읽기 및 편집할 수 있는 무료 MIT‑licensed 라이브러리입니다.

이 라이브러리는 프레젠테이션 파일을 프로그래밍 방식으로 생성하거나 조작해야 하는 개발자를 위해 설계되었습니다: 데이터에서 슬라이드 데크 자동화, 업로드된 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을 사용하여 문자 수준에서 텍스트를 서식 지정합니다: 글꼴 크기, 굵게, 기울임꼴, 밑줄 및 FillType.SOLIDColorFormat을 통한 ARGB 색상.
  • 채우기 유형: FillType.SOLID, GRADIENT, PATTERN 또는 PICTURE 채우기를 모든 도형에 적용합니다.
  • 시각 효과: shape.getEffectFormat()을 통해 외부 그림자, 발광, 부드러운 가장자리, 흐림, 반사 및 내부 그림자를 적용합니다.
  • 3D 서식: 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");
        }
    }
}

항상 try-with-resources 블록 안에서 Presentation를 사용하세요; 이렇게 하면 블록이 종료될 때 모든 내부 리소스가 해제됩니다.

텍스트 서식 예제

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 오류가 발생합니다:

  • 차트, 스마트아트 및 OLE 개체
  • 애니메이션 및 슬라이드 전환
  • PDF, HTML, SVG 또는 이미지 형식으로 내보내기
  • 하이퍼링크, 동작 설정, VBA 매크로 및 디지털 서명

로드 중에 발견된 알 수 없는 XML 파트는 저장 시 그대로 보존되므로, 다른 도구에서 생성된 PPTX 파일이 안전하게 라운드 트립됩니다.

또 보기