Java에서 프레젠테이션 저장 방법

Java에서 프레젠테이션 저장 방법

Aspose.Slides FOSS for Java는 프레젠테이션을 .pptx 형식으로만 prs.save(path, SaveFormat.PPTX)을 사용하여 저장합니다. 이 가이드는 올바른 저장 패턴, 다른 경로에 저장하기, 및 일반적인 저장 관련 오류를 다룹니다.

단계별 가이드

1단계: Maven 의존성 추가

<dependency>
  <groupId>org.aspose.slides.foss</groupId>
  <artifactId>aspose-slides-foss</artifactId>
  <version>1.0.0</version>
</dependency>

Step 2: 프레젠테이션 열기 또는 만들기

항상 try-with-resources를 사용하십시오. save 호출은 try 블록 내부에서 발생해야 합니다.

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

// Create new
try (Presentation prs = new Presentation()) {
    prs.save("new.pptx", SaveFormat.PPTX);
}

// Open existing
try (Presentation prs = new Presentation("input.pptx")) {
    prs.save("output.pptx", SaveFormat.PPTX);
}

3단계: 모든 수정 후 저장

수정이 모두 완료된 후, try 블록 내부의 마지막 문장으로 save() 호출을 배치하십시오.

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

try (Presentation prs = new Presentation()) {
    ISlide slide = prs.getSlides().get(0);
    IAutoShape shape = slide.getShapes().addAutoShape(
        ShapeType.RECTANGLE, 50, 50, 300, 100
    );
    shape.addTextFrame("Hello, World!");
    prs.save("output.pptx", SaveFormat.PPTX);
}

4단계: 다른 경로에 저장

원본을 수정하지 않고 새 파일을 만들려면 다른 출력 경로를 전달하십시오:

try (Presentation prs = new Presentation("template.pptx")) {
    // modify ...
    prs.save("customized.pptx", SaveFormat.PPTX);
}

template.pptx 파일은 수정되지 않으며; customized.pptx 파일이 생성됩니다(이미 존재하는 경우 덮어쓰기됩니다).


5단계: 출력 확인

try 블록이 종료된 후, 파일이 완성되고 닫힙니다. 파일이 존재하는지 확인하십시오:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

Path output = Paths.get("output.pptx");
System.out.println("Saved: " + Files.exists(output)
    + ", size: " + Files.size(output) + " bytes");

지원되는 저장 형식

FormatEnum ValueSupported
PPTX (Office Open XML)SaveFormat.PPTX
PDFN/A아니오
HTMLN/A아니오
SVGN/A아니오
PNG / JPEGN/A아니오
ODP (OpenDocument)N/A아니오

PPTX만 완전히 지원됩니다. 다른 SaveFormat 값을 prs.save(path, format)에 전달하면 조용히 PPTX로 저장됩니다 — 예외가 발생하지 않으며 형식 인수가 무시됩니다. UnsupportedOperationExceptionprs.save(ISaveOptions options)에 의해서만 발생하며, 형식 기반 오버로드에서는 발생하지 않습니다.


일반적인 문제 및 해결책

java.io.IOException: Permission denied

출력 파일이 다른 애플리케이션에서 열려 있습니다(예: PowerPoint에서 파일이 열려 있음). 저장하기 전에 다른 애플리케이션에서 파일을 닫으세요.

파일이 생성되었지만 비어 있거나 손상된 것으로 보입니다

prs.save()이(가) try 블록 내부에서 호출되도록 하고, 그 이후에 호출되지 않도록 하세요. try-with-resources 블록이 종료된 후에는 Presentation 객체가 해제되며 이후 호출은 실패합니다.

UnsupportedOperationException 저장할 때

이 오류는 prs.save(ISaveOptions options)을 사용할 때 발생합니다 — ISaveOptions 기반 오버로드가 구현되지 않았습니다. 참고: 비-PPTX SaveFormatprs.save(path, format)에 전달해도 이 예외를 발생시키지 않으며; PPTX로 조용히 저장됩니다.


자주 묻는 질문

열어둔 파일에 같은 파일로 저장할 수 있나요?

예. 동일한 경로에 저장하면 원본 파일이 덮어쓰기됩니다:

try (Presentation prs = new Presentation("deck.pptx")) {
    // modify ...
    prs.save("deck.pptx", SaveFormat.PPTX);  // overwrites original
}

OutputStream에 저장할 수 있나요?

예. save() 메서드는 OutputStream을(를) 받아들입니다:

import java.io.FileOutputStream;

try (Presentation prs = new Presentation();
     FileOutputStream fos = new FileOutputStream("output.pptx")) {
    prs.save(fos, SaveFormat.PPTX);
}

저장하면 수정하지 않은 내용이 보존되나요?

예. 원본 파일의 알 수 없는 XML 부분은 그대로 보존됩니다. 라이브러리는 이해하는 문서 모델의 부분만 직렬화하고, 인식하지 못하는 XML은 그대로 전달합니다.


또 보기

 한국어