JavaScript에서 프레젠테이션 저장
개요
Open Presentations in JavaScript 에서는 Presentation 클래스를 사용해 프레젠테이션을 여는 방법을 설명했습니다. 이 문서에서는 프레젠테이션을 생성하고 저장하는 방법을 설명합니다. Presentation 클래스에는 프레젠테이션의 내용이 포함됩니다. 처음부터 프레젠테이션을 만들든 기존 프레젠테이션을 수정하든 작업이 끝나면 저장해야 합니다. Aspose.Slides for Node.js를 사용하면 파일이나 스트림에 저장할 수 있습니다. 이 문서에서는 프레젠테이션을 저장하는 다양한 방법을 설명합니다.
프레젠테이션을 파일에 저장
Presentation 클래스의 save 메서드를 호출하여 프레젠테이션을 파일에 저장합니다. 메서드에 파일 이름과 저장 형식을 전달하십시오. 다음 예제는 Aspose.Slides를 사용해 프레젠테이션을 저장하는 방법을 보여줍니다.
// 프레젠테이션 파일을 나타내는 Presentation 클래스를 인스턴스화합니다.
let presentation = new aspose.slides.Presentation();
try {
// 여기에서 작업을 수행합니다...
// 프레젠테이션을 파일에 저장합니다.
presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
프레젠테이션을 스트림에 저장
Presentation 클래스의 save 메서드에 출력 스트림을 전달하여 프레젠테이션을 스트림에 저장할 수 있습니다. 프레젠테이션은 다양한 스트림 유형에 기록될 수 있습니다. 아래 예제에서는 새 프레젠테이션을 만들고 파일 스트림에 저장합니다.
// 프레젠테이션 파일을 나타내는 Presentation 클래스를 인스턴스화합니다.
let presentation = new aspose.slides.Presentation();
try {
let fileStream = java.newInstanceSync("java.io.FileOutputStream", "Output.pptx");
try {
// 프레젠테이션을 스트림에 저장합니다.
presentation.save(fileStream, aspose.slides.SaveFormat.Pptx);
} finally {
fileStream.close();
}
} finally {
presentation.dispose();
}
미리 정의된 보기 유형으로 프레젠테이션 저장
Aspose.Slides는 생성된 프레젠테이션이 열릴 때 PowerPoint가 사용할 초기 보기를 ViewProperties 클래스를 통해 설정할 수 있게 합니다. ViewType 열거형의 값을 사용해 setLastView 메서드를 호출하십시오.
let presentation = new aspose.slides.Presentation();
try {
presentation.getViewProperties().setLastView(aspose.slides.ViewType.SlideMasterView);
presentation.save("SlideMasterView.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Strict Office Open XML 형식으로 프레젠테이션 저장
Aspose.Slides를 사용하면 프레젠테이션을 Strict Office Open XML 형식으로 저장할 수 있습니다. 저장 시 PptxOptions 클래스를 사용하고 그 conformance 속성을 설정하십시오. Conformance.Iso29500_2008_Strict를 지정하면 출력 파일이 Strict Office Open XML 형식으로 저장됩니다.
아래 예제는 프레젠테이션을 생성하고 Strict Office Open XML 형식으로 저장합니다.
let options = new aspose.slides.PptxOptions();
options.setConformance(aspose.slides.Conformance.Iso29500_2008_Strict);
// 프레젠테이션 파일을 나타내는 Presentation 클래스를 인스턴스화합니다.
let presentation = new aspose.slides.Presentation();
try {
// 프레젠테이션을 Strict Office Open XML 형식으로 저장합니다.
presentation.save("StrictOfficeOpenXml.pptx", aspose.slides.SaveFormat.Pptx, options);
} finally {
presentation.dispose();
}
ZIP64 모드로 Office Open XML 형식 저장
Office Open XML 파일은 ZIP 아카이브이며, 압축되지 않은 파일 크기, 압축된 파일 크기, 전체 아카이브 크기에 각각 4 GB(2^32 바이트) 제한과 파일 수 65 535(2^16‑1) 제한을 둡니다. ZIP64 확장 형식은 이러한 제한을 2^64까지 확장합니다.
PptxOptions.setZip64Mode 메서드를 사용하면 Office Open XML 파일을 저장할 때 ZIP64 확장 형식을 언제 사용할지 선택할 수 있습니다.
다음 모드가 지원됩니다:
- IfNecessary 은 프레젠테이션이 위 제한을 초과할 경우에만 ZIP64 확장 형식을 사용합니다. 기본 모드입니다.
- Never 은 ZIP64 확장 형식을 절대 사용하지 않습니다.
- Always 은 항상 ZIP64 확장 형식을 사용합니다.
아래 코드는 ZIP64 확장 형식을 활성화한 상태에서 PPTX로 프레젠테이션을 저장하는 방법을 보여줍니다.
let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setZip64Mode(aspose.slides.Zip64Mode.Always);
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
presentation.save("OutputZip64.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions);
} finally {
presentation.dispose();
}
섬네일을 새로 고치지 않고 프레젠테이션 저장
PptxOptions.setRefreshThumbnail 메서드는 PPTX로 저장할 때 섬네일 생성 여부를 제어합니다:
true로 설정하면 저장 중에 섬네일이 새로 고쳐집니다. 기본값입니다.false로 설정하면 현재 섬네일을 유지합니다. 프레젠테이션에 섬네일이 없으면 섬네일이 생성되지 않습니다.
아래 코드에서는 섬네일을 새로 고치지 않고 PPTX로 프레젠테이션을 저장합니다.
let pptxOptions = new aspose.slides.PptxOptions();
pptxOptions.setRefreshThumbnail(false);
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
presentation.save("Output.pptx", aspose.slides.SaveFormat.Pptx, pptxOptions);
}
finally {
presentation.dispose();
}
Info
이 옵션은 PPTX 형식으로 저장하는 데 걸리는 시간을 줄이는 데 도움이 됩니다.진행 상황을 백분율로 저장 업데이트
SaveOptions 및 그 하위 클래스에서 setProgressCallback 메서드를 통해 저장 진행 상황 보고를 구성합니다. Java 프록시를 제공하고 해당 프록시가 IProgressCallback 인터페이스를 구현하도록 하면, 내보내기 중에 콜백이 주기적인 백분율 업데이트를 받습니다.
다음 코드 조각은 IProgressCallback 을 사용하는 방법을 보여줍니다.
const ExportProgressHandler = java.newProxy("com.aspose.slides.IProgressCallback", {
reporting: function(progressValue) {
// 여기에서 진행률 백분율 값을 사용합니다.
const progress = Math.floor(progressValue);
console.log(`${progress}% of the file has been converted.`);
}
});
let saveOptions = new aspose.slides.PdfOptions();
saveOptions.setProgressCallback(ExportProgressHandler);
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
presentation.save("Output.pdf", aspose.slides.SaveFormat.Pdf, saveOptions);
} finally {
presentation.dispose();
}
Info
Aspose는 자체 API를 사용해 만든 무료 PowerPoint Splitter 앱(https://products.aspose.app/slides/ko/splitter)을 제공하고 있습니다. 이 앱을 사용하면 선택한 슬라이드를 새로운 PPTX 또는 PPT 파일로 저장해 프레젠테이션을 여러 파일로 분할할 수 있습니다.FAQ
“빠른 저장”(증분 저장)이 지원되어 변경된 내용만 기록되나요?
아니요. 저장 시마다 전체 대상 파일을 새로 생성하므로 증분 “빠른 저장"은 지원되지 않습니다.
여러 스레드에서 동일한 Presentation 인스턴스를 저장해도 안전한가요?
아니요. Presentation 인스턴스는 /slides/ko/nodejs-java/multithreading/ 에서 설명된 바와 같이 스레드에 안전하지 않으므로 단일 스레드에서 저장해야 합니다.
저장할 때 하이퍼링크와 외부 연결 파일은 어떻게 되나요?
Hyperlinks 은 유지됩니다. 외부 연결 파일(예: 상대 경로를 이용한 비디오)은 자동으로 복사되지 않으니 참조 경로가 계속 접근 가능하도록 해야 합니다.
문서 메타데이터(작성자, 제목, 회사, 날짜)를 설정/저장할 수 있나요?
예. 표준 document properties 가 지원되며 저장 시 파일에 기록됩니다.