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

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

Aspose.Slides FOSS for Java saves presentations exclusively to .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>

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

항상 try-with-resources를 사용하세요. 저장 호출은 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: 모든 수정 후 저장

다음 항목을 배치하십시오 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;

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");

지원되는 저장 형식

형식열거형 값지원됨
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로 저장됩니다 — 예외가 발생하지 않고 형식 인자는 무시됩니다. UnsupportedOperationException 는 오직 다음에 의해 발생합니다 prs.save(ISaveOptions options), 형식 기반 오버로드에서는 발생하지 않습니다.


일반적인 문제 및 해결책

java.io.IOException: Permission denied

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

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

확인하십시오 prs.save() 는 try 블록 내부에서 호출되어야 하며, 그 이후에 호출해서는 안 됩니다. try-with-resources 블록이 종료된 후에, Presentation 객체가 해제되며 이후 호출은 실패합니다.

UnsupportedOperationException 저장할 때

이는 다음을 사용할 때 발생합니다 prs.save(ISaveOptions options) — the ISaveOptions-based 오버로드가 구현되지 않았습니다. 참고: 비-PPTX를 전달하는 경우 SaveFormatprs.save(path, format) 한다 않습니다 이 예외를 발생시키지 않습니다; 조용히 PPTX로 저장됩니다.


자주 묻는 질문

열었던 파일에 그대로 저장할 수 있나요?

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

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

OutputStream에 저장할 수 있나요?

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

import java.io.FileOutputStream;

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

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

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


또 보기

 한국어