소개

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 파일도 안전하게 라운드트립됩니다.

또 보기