JavaScript에서 PPT 및 PPTX를 PDF로 변환 [고급 기능 포함]
개요
PowerPoint 및 OpenDocument 프레젠테이션(PPT, PPTX, ODP 등)을 JavaScript에서 PDF 형식으로 변환하면 서로 다른 장치 간 호환성 및 프레젠테이션 레이아웃과 서식 보존 등 여러 장점이 있습니다. 이 가이드는 프레젠테이션을 PDF 문서로 변환하고, 이미지 품질을 제어하는 다양한 옵션을 사용하며, 숨겨진 슬라이드를 포함하고, PDF 파일에 비밀번호를 설정하고, 글꼴 대체를 감지하고, 변환할 특정 슬라이드를 선택하고, 출력 문서에 규정 준수 표준을 적용하는 방법을 보여줍니다.
PowerPoint를 PDF로 변환
Aspose.Slides를 사용하면 다음 형식의 프레젠테이션을 PDF로 변환할 수 있습니다:
- PPT
- PPTX
- ODP
프레젠테이션을 PDF로 변환하려면 파일 이름을 인수로 전달하여 Presentation 클래스를 만든 다음 save 메서드를 사용해 PDF로 저장합니다. Presentation 클래스는 일반적으로 프레젠테이션을 PDF로 변환하는 데 사용되는 save 메서드를 제공합니다.
Note
Aspose.Slides for Node.js via Java은 API 정보와 버전 번호를 출력 문서에 삽입합니다. 예를 들어 프레젠테이션을 PDF로 변환할 때 Aspose.Slides는 Application 필드에 “Aspose.Slides“를, PDF Producer 필드에는 “Aspose.Slides v XX.XX” 형식의 값을 채웁니다. 주의 이 정보를 출력 문서에서 변경하거나 제거하도록 Aspose.Slides에 지시할 수 없습니다.Aspose.Slides를 사용하면 다음을 변환할 수 있습니다:
- 전체 프레젠테이션을 PDF로 변환
- 프레젠테이션의 특정 슬라이드를 PDF로 변환
Aspose.Slides는 프레젠테이션을 PDF로 내보내면서 결과 PDF가 원본 프레젠테이션과 거의 동일하도록 보장합니다. 변환 과정에서 요소와 속성이 정확히 렌더링되며, 포함되는 내용은 다음과 같습니다:
- 이미지
- 텍스트 상자 및 도형
- 텍스트 서식
- 단락 서식
- 하이퍼링크
- 머리글 및 바닥글
- 글머리표
- 표
PowerPoint를 PDF로 변환
표준 PowerPoint‑to‑PDF 변환 프로세스는 기본 옵션을 사용합니다. 이 경우 Aspose.Slides는 최적의 설정으로 최대 품질 수준에서 제공된 프레젠테이션을 PDF로 변환하려고 시도합니다.
다음 예제는 프레젠테이션을 로드하고 기본 내보내기 설정을 사용해 모든 보이는 슬라이드를 PDF로 저장합니다.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("PowerPoint.ppt");
try {
presentation.save("PPT-to-PDF.pdf", aspose.slides.SaveFormat.Pdf);
} finally {
presentation.dispose();
}
Note
Aspose는 프레젠테이션‑to‑PDF 변환 과정을 시연하는 무료 온라인 PowerPoint를 PDF로 변환기 를 제공합니다. 여기에서 변환기를 사용해 설명된 절차를 실제로 테스트할 수 있습니다.옵션을 사용한 PowerPoint를 PDF로 변환
Aspose.Slides는 PdfOptions 클래스 아래에 있는 사용자 정의 옵션(속성)을 제공하여 결과 PDF를 맞춤 설정하고, 비밀번호로 PDF를 잠그며, 변환 프로세스 진행 방식을 지정할 수 있습니다.
사용자 정의 옵션을 사용한 PowerPoint를 PDF로 변환
사용자 정의 변환 옵션을 사용하면 래스터 이미지에 대한 원하는 품질 설정을 정의하고, 메타파일 처리 방식을 지정하고, 텍스트 압축 수준을 설정하고, 이미지 DPI를 구성하는 등 다양한 설정을 할 수 있습니다.
다음 예제는 PDF 1.5로 프레젠테이션을 내보내면서 JPEG 품질을 90으로, 이미지 해상도를 300 DPI로, 메타파일을 PNG로 저장하고, Flate 텍스트 압축을 적용합니다.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setJpegQuality(java.newByte(90));
pdfOptions.setSufficientResolution(300);
pdfOptions.setSaveMetafilesAsPng(true);
pdfOptions.setTextCompression(aspose.slides.PdfTextCompression.Flate);
pdfOptions.setCompliance(aspose.slides.PdfCompliance.Pdf15);
let presentation = new aspose.slides.Presentation("PowerPoint.pptx");
try {
presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
첨부 파일로 내장된 OLE 파일 보존
프레젠테이션에 내장된 Excel 통합 문서가 포함된 경우 PDF 수신자가 슬라이드와 함께 통합 문서 데이터를 확인할 수 있도록 하고 싶을 수 있습니다. true 값을 사용해 setIncludeOleData 메서드를 호출하면 결과 PDF에 내장 OLE 파일을 첨부 파일로 보존합니다.
기본값은 false이며, 이 경우 OLE 객체의 미리 보기 이미지 또는 아이콘만 PDF 페이지에 렌더링되고 내장 파일은 첨부 파일로 포함되지 않습니다. 옵션을 true로 설정하면 파일 데이터도 추가로 포함됩니다. 미리 보기는 시각적 표현으로 남고, 첨부 파일을 통해 수신자는 별도로 파일을 열거나 저장할 수 있습니다. OLE 객체가 PDF 페이지에서 인터랙티브한 Excel 워크시트가 되는 것은 아닙니다.
다음 예제는 이미 내장된 Excel 통합 문서를 포함하고 있는 프레젠테이션을 로드한 뒤 통합 문서를 첨부 파일로 포함하여 PDF로 내보냅니다.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setIncludeOleData(true);
let presentation = new aspose.slides.Presentation("presentation.pptx");
try {
presentation.save("presentation.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
결과를 확인하려면:
- 파일 첨부 기능을 지원하는 뷰어(예: Adobe Acrobat Reader)에서 내보낸 PDF를 엽니다.
- 뷰어의 Attachments 패널을 열고 내장된 통합 문서를 찾습니다.
- 첨부 파일을 저장하고 Excel에서 열어 데이터를 확인하거나, 뷰어가 허용한다면 바로 엽니다. PDF 페이지의 미리 보기는 첨부 파일과 별개입니다.
Note
PDF/A 표준은 첨부 파일에 제한을 둡니다: PDF/A‑1은 첨부 파일을 금지하고, PDF/A‑2는 PDF/A 첨부 파일만 허용하며, PDF/A‑3은 Excel 통합 문서를 포함한 기타 파일 형식을 허용합니다. 이는 표준 자체의 요구 사항이며 Aspose.Slides에 특화된 제한이 아닙니다. 이 예제는 기본 PDF 준수 설정을 사용하며 PDF/A 내보내기를 시연하지 않습니다.숨겨진 슬라이드를 포함한 PowerPoint를 PDF로 변환
프레젠테이션에 숨겨진 슬라이드가 포함된 경우 PdfOptions 클래스의 setShowHiddenSlides 메서드를 사용해 숨겨진 슬라이드를 결과 PDF 페이지에 포함시킬 수 있습니다.
다음 예제는 숨겨진 슬라이드를 포함하여 프레젠테이션을 PDF로 내보냅니다.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setShowHiddenSlides(true);
let presentation = new aspose.slides.Presentation("PowerPoint.pptx");
try {
presentation.save("PowerPoint-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
비밀번호로 보호된 PDF로 PowerPoint 변환
다음 예제는 password 비밀번호를 입력해야 열 수 있는 PDF로 프레젠테이션을 내보냅니다. 액세스 권한은 인쇄, 고품질 인쇄를 허용합니다.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setPassword("password");
pdfOptions.setAccessPermissions(aspose.slides.PdfAccessPermissions.PrintDocument | aspose.slides.PdfAccessPermissions.HighQualityPrint);
let presentation = new aspose.slides.Presentation("PowerPoint.pptx");
try {
presentation.save("PPTX-to-PDF.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
글꼴 대체 감지
Aspose.Slides는 PdfOptions 클래스 아래에 있는 setWarningCallback 메서드를 제공하여 프레젠테이션‑to‑PDF 변환 과정에서 글꼴 대체를 감지할 수 있게 합니다.
다음 예제는 프레젠테이션을 PDF로 내보내고 콘솔에 글꼴 대체 경고를 출력합니다. 사용 가능한 글꼴이 없을 때만 경고가 출력됩니다.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
const FontSubstitutionHandler = java.newProxy("com.aspose.slides.IWarningCallback", {
warning: function (warning) {
if (warning.getWarningType() === aspose.slides.WarningType.DataLoss && warning.getDescription().startsWith("Font will be substituted")) {
console.warn("Font substitution warning: " + warning.getDescription());
}
return aspose.slides.ReturnAction.Continue;
}
});
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setWarningCallback(FontSubstitutionHandler);
let presentation = new aspose.slides.Presentation("sample.pptx");
try {
presentation.save("output.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Note
글꼴 대체에 대한 자세한 내용은 Font Substitution 문서를 참조하십시오.선택한 슬라이드만 PDF로 변환
다음 예제는 프레젠테이션에서 슬라이드 1과 3을 선택해 PDF로 내보냅니다. 배열의 슬라이드 번호는 1부터 시작하며, 입력 프레젠테이션에 최소 세 개의 슬라이드가 있어야 합니다.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
let presentation = new aspose.slides.Presentation("PowerPoint.pptx");
try {
let slides = java.newArray("int", [1, 3]);
presentation.save("PPTX-to-PDF.pdf", slides, aspose.slides.SaveFormat.Pdf);
} finally {
presentation.dispose();
}
맞춤 슬라이드 크기로 PowerPoint를 PDF로 변환
다음 예제는 프레젠테이션의 첫 번째 슬라이드를 새 프레젠테이션에 복사하고 슬라이드 크기를 612 × 792 포인트(8.5 × 11인치)로 설정합니다. 슬라이드 콘텐츠를 자동으로 확대/축소하여 맞추고 단일 슬라이드를 PDF로 내보냅니다.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const slideWidth = 612;
const slideHeight = 792;
let presentation = new aspose.slides.Presentation("SelectedSlides.pptx");
let resizedPresentation = new aspose.slides.Presentation();
try {
resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, aspose.slides.SlideSizeScaleType.EnsureFit);
let slide = presentation.getSlides().get_Item(0);
resizedPresentation.getSlides().insertClone(0, slide);
// 새 프레젠테이션이 생성될 때 생성된 빈 슬라이드를 제거합니다.
resizedPresentation.getSlides().removeAt(1);
resizedPresentation.save("PDF_with_custom_slide_size.pdf", aspose.slides.SaveFormat.Pdf);
} finally {
resizedPresentation.dispose();
presentation.dispose();
}
노트 슬라이드 뷰로 PowerPoint를 PDF에 변환
다음 예제는 프레젠테이션을 PDF로 내보내면서 각 슬라이드 아래에 발표자 노트를 배치합니다. 결과를 확인하려면 발표자 노트가 포함된 프레젠테이션을 사용하십시오.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let notesOptions = new aspose.slides.NotesCommentsLayoutingOptions();
notesOptions.setNotesPosition(aspose.slides.NotesPositions.BottomFull);
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setSlidesLayoutOptions(notesOptions);
let presentation = new aspose.slides.Presentation("SelectedSlides.pptx");
try {
presentation.save("PDF_with_notes.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
PDF 접근성 및 규정 준수 표준
Aspose.Slides는 Web Content Accessibility Guidelines (WCAG) 을 준수하는 변환 절차를 사용할 수 있게 합니다. 다음과 같은 PDF 규정 준수 표준을 사용해 PowerPoint 문서를 PDF로 내보낼 수 있습니다: PDF/A1a, PDF/A1b, PDF/UA.
다음 코드는 서로 다른 규정 준수 표준에 따라 여러 개의 PDF를 생성하는 PowerPoint‑to‑PDF 변환 프로세스를 보여줍니다:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
let presentation = new aspose.slides.Presentation("pres.pptx");
try {
let pdfOptions = new aspose.slides.PdfOptions();
pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1a);
presentation.save("pres-a1a-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfA1b);
presentation.save("pres-a1b-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
pdfOptions.setCompliance(aspose.slides.PdfCompliance.PdfUa);
presentation.save("pres-ua-compliance.pdf", aspose.slides.SaveFormat.Pdf, pdfOptions);
} finally {
presentation.dispose();
}
Note
Aspose.Slides는 PDF 변환 작업을 지원하며, PDF 파일을 다양한 형식으로 변환할 수 있습니다. 예를 들어 PDF to HTML, PDF to JPG, PDF to PNG 변환을 수행할 수 있습니다. 또한 PDF to SVG, PDF to TIFF 등 특수 형식으로의 변환도 지원합니다.Note: PDF/UA로 내보낼 때 Aspose.Slides는 SmartArt, 차트, 수식과 같은 복합 그래픽을 단일 피겨로 처리합니다. 개별 경로 요소는 별도 콘텐츠로 보존되지 않으며 아티팩트로 표시될 수 있습니다; 대체 텍스트는 전체 피겨에만 제공됩니다.
FAQ
여러 PowerPoint 파일을 한 번에 PDF로 변환할 수 있나요?
예, Aspose.Slides는 여러 PPT 또는 PPTX 파일을 PDF로 일괄 변환하는 것을 지원합니다. 파일을 순회하면서 프로그래밍 방식으로 변환 프로세스를 적용하면 됩니다.
변환된 PDF에 비밀번호를 설정할 수 있나요?
예. 변환 과정에서 비밀번호를 설정하고 접근 권한을 정의하려면 PdfOptions 클래스를 사용하십시오.
PDF에 숨겨진 슬라이드를 포함하려면 어떻게 해야 하나요?
PdfOptions 클래스에서 setShowHiddenSlides 메서드를 true 로 호출하면 결과 PDF에 숨겨진 슬라이드가 포함됩니다.
Aspose.Slides가 PDF에서 높은 이미지 품질을 유지할 수 있나요?
예. setJpegQuality 및 setSufficientResolution 같은 메서드를 PdfOptions 클래스에서 사용해 이미지 품질을 고품질로 유지할 수 있습니다.
Aspose.Slides가 PDF/A 규정 준수 표준을 지원하나요?
예. Aspose.Slides는 various standards 를 포함해 PDF/A1a, PDF/A1b, PDF/UA 등 다양한 PDF/A 규정 준수 표준에 맞는 PDF를 내보낼 수 있어 문서가 접근성 및 보존 요구 사항을 충족하도록 합니다.