기능 및 역량

기능 및 역량

Aspose.Slides FOSS for Java provides a broad set of capabilities for working with PowerPoint .pptx 파일을 프로그래밍 방식으로 처리합니다. 이 페이지에서는 대표적인 코드 예제와 함께 지원되는 모든 기능 영역을 나열합니다.


프레젠테이션 I/O

기존 파일을 열기 .pptx 파일을 열거나 새 파일을 만든 다음 PPTX 형식으로 다시 저장합니다.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;

// Open an existing presentation
try (Presentation prs = new Presentation("input.pptx")) {
    System.out.println("Slide count: " + prs.getSlides().size());
    prs.save("output.pptx", SaveFormat.PPTX);
}

// Create a new presentation (starts with one blank slide)
try (Presentation prs = new Presentation()) {
    prs.save("new.pptx", SaveFormat.PPTX);
}

참고: PPTX는 유일하게 지원되는 저장 형식입니다. PDF, HTML, SVG 또는 이미지로 내보내는 기능은 제공되지 않습니다.

소스 파일의 알 수 없는 XML 파트는 저장 시 그대로 보존되므로, 열고 다시 저장해도 .pptx 라이브러리가 아직 이해하지 못하는 콘텐츠는 절대 제거되지 않습니다.


슬라이드 관리

슬라이드를 추가, 제거, 복제 및 순서 변경합니다.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    // Access the first slide
    var slide = prs.getSlides().get(0);

    // Add an additional blank slide at the end
    prs.getSlides().addEmptySlide(prs.getLayoutSlides().get(0));

    System.out.println("Total slides: " + prs.getSlides().size());
    prs.save("multi-slide.pptx", SaveFormat.PPTX);
}

도형

슬라이드에 자동도형, 그림 프레임, 표 및 연결선을 추가합니다.

AutoShapes

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    // Add a rectangle at (x=50, y=50) with width=300, height=100
    var shape = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 50, 300, 100);
    shape.addTextFrame("Aspose.Slides FOSS");
    prs.save("shapes.pptx", SaveFormat.PPTX);
}

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    // Column widths and row heights in points
    double[] colWidths = {120.0, 120.0, 120.0};
    double[] rowHeights = {40.0, 40.0, 40.0};
    var table = slide.getShapes().addTable(50, 50, colWidths, rowHeights);
    table.getRows().get(0).get(0).getTextFrame().setText("Product");
    table.getRows().get(0).get(1).getTextFrame().setText("Quantity");
    table.getRows().get(0).get(2).getTextFrame().setText("Price");
    prs.save("table.pptx", SaveFormat.PPTX);
}

연결선

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    var box1 = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 100, 150, 60);
    var box2 = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 350, 100, 150, 60);
    var conn = slide.getShapes().addConnector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10);
    conn.setStartShapeConnectedTo(box1);
    conn.setStartShapeConnectionSiteIndex(3);  // right side
    conn.setEndShapeConnectedTo(box2);
    conn.setEndShapeConnectionSiteIndex(1);    // left side
    prs.save("connector.pptx", SaveFormat.PPTX);
}

텍스트 서식

단락 및 문자 수준에서 텍스트를 서식 지정하려면 사용합니다 PortionFormat.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.NullableBool;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    var shape = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 50, 500, 150);
    var tf = shape.addTextFrame("Bold blue heading");

    var 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(Color.fromArgb(255, 0, 70, 127));

    prs.save("text.pptx", SaveFormat.PPTX);
}

NullableBool.TRUE 속성을 명시적으로 설정합니다; NullableBool.NOT_DEFINED 슬라이드 마스터로부터 상속됩니다.


채우기 유형

도형에 단색, 그라디언트, 패턴 또는 그림 채우기를 적용합니다.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.drawing.Color;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var slide = prs.getSlides().get(0);
    var shape = slide.getShapes().addAutoShape(ShapeType.RECTANGLE, 50, 50, 300, 150);

    // Solid fill
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 30, 120, 200));

    prs.save("fill.pptx", SaveFormat.PPTX);
}

시각 효과

도형에 외부 그림자, 글로우, 부드러운 가장자리, 흐림, 반사 및 내부 그림자를 적용합니다.

효과 속성은 다음을 통해 접근할 수 있습니다 shape.getEffectFormat(). 호출합니다 enableOuterShadowEffect(), enableGlowEffect(), enableSoftEdgeEffect(), setBlurEffect(radius, grow), enableReflectionEffect(), 또는 enableInnerShadowEffect() 각각을 독립적으로 구성합니다.


3D Formatting

3D 베벨, 카메라, 라이트 릭, 재질 및 돌출 깊이를 다음을 통해 적용합니다 shape.getThreeDFormat(). 이는 3D 효과를 지원하는 PPTX 뷰어에서 도형 렌더링의 시각적 깊이와 조명 모델을 제어합니다.


발표자 노트

다음 방법을 사용하여 모든 슬라이드에 메모를 첨부 getNotesSlideManager().

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var notes = prs.getSlides().get(0).getNotesSlideManager().addNotesSlide();
    notes.getNotesTextFrame().setText("Key talking point: emphasize the ROI benefit.");
    prs.save("notes.pptx", SaveFormat.PPTX);
}

댓글

작성자 정보와 슬라이드 위치가 포함된 스레드형 댓글을 추가합니다.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.drawing.PointF;
import org.aspose.slides.foss.export.SaveFormat;
import java.time.LocalDateTime;

try (Presentation prs = new Presentation()) {
    var author = prs.getCommentAuthors().addAuthor("Jane Smith", "JS");
    var slide = prs.getSlides().get(0);
    author.getComments().addComment(
        "Please verify this data before the presentation.",
        slide,
        new PointF(2.0f, 2.0f),
        LocalDateTime.now()
    );
    prs.save("comments.pptx", SaveFormat.PPTX);
}

임베드된 이미지

파일에서 이미지를 프레젠테이션에 삽입하고 슬라이드에 ~로 추가 PictureFrame.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;
import java.nio.file.Files;
import java.nio.file.Path;

try (Presentation prs = new Presentation()) {
    byte[] imageData = Files.readAllBytes(Path.of("logo.png"));
    var image = prs.getImages().addImage(imageData);
    var slide = prs.getSlides().get(0);
    slide.getShapes().addPictureFrame(ShapeType.RECTANGLE, 50, 50, 200, 150, image);
    prs.save("with-image.pptx", SaveFormat.PPTX);
}

문서 속성

핵심, 앱 및 사용자 정의 문서 속성을 읽고 쓸 수 있습니다.

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var props = prs.getDocumentProperties();

    // Core properties
    props.setTitle("Q1 Results");
    props.setAuthor("Finance Team");
    props.setSubject("Quarterly Review");
    props.setKeywords("Q1, finance, results");

    // Custom property
    props.setCustomPropertyValue("ReviewedBy", "Legal Team");

    prs.save("deck.pptx", SaveFormat.PPTX);
}

알려진 제한 사항

다음 영역에서 발생 UnsupportedOperationException 그리고 이 버전에서는 사용할 수 없습니다:

영역상태
차트구현되지 않음
SmartArt구현되지 않음
애니메이션 및 전환구현되지 않음
PDF / HTML / SVG / 이미지 내보내기구현되지 않음 (PPTX 전용)
VBA 매크로구현되지 않음
디지털 서명구현되지 않음
하이퍼링크 및 동작 설정구현되지 않음
OLE 개체구현되지 않음
수학 텍스트구현되지 않음

또 보기

 한국어