PHP에서 프레젠테이션을 효율적으로 병합하기
개요
Aspose.Slides를 사용하면 한 프레젠테이션의 슬라이드를 복제하여 다른 프레젠테이션에 병합할 수 있습니다. 이 문서에서는 전체 프레젠테이션이나 선택된 슬라이드를 병합하는 방법, 병합 시 슬라이드 마스터 또는 특정 레이아웃을 사용하는 방법, 슬라이드 크기가 다른 프레젠테이션을 처리하는 방법, 그리고 병합된 슬라이드를 프레젠테이션 섹션에 추가하는 방법을 설명합니다. 또한 병합된 콘텐츠와 관련된 실용적인 주의 사항(예: 발표자 메모, 주석, 암호로 보호된 원본 파일, 스레드 사용)도 다룹니다.
프레젠테이션 병합
한 프레젠테이션을 다른 프레젠테이션에 병합하면, 사실상 두 프레젠테이션의 슬라이드를 하나의 프레젠테이션으로 결합하여 하나의 파일을 얻는 것입니다.
Info
대부분의 프레젠테이션 프로그램(PowerPoint 또는 OpenOffice)에는 사용자가 프레젠테이션을 이러한 방식으로 결합할 수 있는 기능이 없습니다.
Aspose.Slides for PHP via Java는 다양한 방식으로 프레젠테이션을 병합할 수 있도록 해줍니다. 모양, 스타일, 텍스트, 서식, 주석, 애니메이션 등 모든 요소를 손실이나 품질 저하 없이 병합할 수 있습니다.
또한 보기
무엇을 병합할 수 있나요
Aspose.Slides를 사용하면 다음을 병합할 수 있습니다.
- 전체 프레젠테이션. 모든 프레젠테이션의 슬라이드가 하나의 프레젠테이션에 포함됩니다
- 특정 슬라이드. 선택한 슬라이드가 하나의 프레젠테이션에 포함됩니다
- 동일 형식의 프레젠테이션(PPT → PPT, PPTX → PPTX 등) 및 서로 다른 형식(PPT → PPTX, PPTX → ODP 등) 간의 병합
Note
프레젠테이션 외에도 Aspose.Slides를 사용하면 다른 파일도 병합할 수 있습니다:
- 이미지, 예를 들어 JPG → JPG 또는 PNG → PNG
- 문서, 예: PDF → PDF 또는 HTML → HTML
- 서로 다른 형식의 파일, 예: 이미지 → PDF 또는 JPG → PDF 또는 TIFF → PDF.
병합 옵션
다음과 같은 옵션을 적용하여 결정할 수 있습니다.
- 출력 프레젠테이션의 각 슬라이드가 고유한 스타일을 유지합니다
- 출력 프레젠테이션의 모든 슬라이드에 특정 스타일을 적용합니다
프레젠테이션을 병합하려면 Aspose.Slides가 addClone 메서드(SlideCollection 클래스)를 제공합니다. addClone 메서드에는 병합 프로세스 매개변수를 정의하는 여러 구현이 있습니다. 모든 Presentation 객체는 slide 컬렉션을 가지고 있으므로, 슬라이드를 병합하려는 프레젠테이션에서 addClone 메서드를 호출할 수 있습니다.
addClone 메서드는 원본 슬라이드의 복제본인 Slide 객체를 반환합니다. 출력 프레젠테이션의 슬라이드는 단순히 원본 슬라이드의 복사본이므로, 소스 프레젠테이션에 영향을 주지 않으면서 결과 슬라이드에 스타일, 서식 옵션 또는 레이아웃 등을 적용할 수 있습니다.
프레젠테이션 병합
Aspose.Slides는 슬라이드가 레이아웃과 스타일을 유지하면서 결합할 수 있도록 하는 addClone(Slide) 메서드를 제공합니다(기본 매개변수).
이 PHP 코드는 프레젠테이션을 병합하는 방법을 보여줍니다:
$pres1 = new Presentation("pres1.pptx");
try {
$pres2 = new Presentation("pres2.pptx");
try {
foreach($pres2->getSlides() as $slide) {
$pres1->getSlides()->addClone($slide);
}
} finally {
if (!java_is_null($pres2)) {
$pres2->dispose();
}
}
$pres1->save("combined.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres1)) {
$pres1->dispose();
}
}
슬라이드 마스터를 사용한 프레젠테이션 병합
Aspose.Slides는 슬라이드 마스터 프레젠테이션 템플릿을 적용하면서 슬라이드를 결합할 수 있는 addClone(Slide, MasterSlide, boolean) 메서드를 제공합니다. 이를 통해 필요시 출력 프레젠테이션의 슬라이드 스타일을 변경할 수 있습니다.
다음 코드는 설명된 작업을 보여줍니다:
$pres1 = new Presentation("pres1.pptx");
try {
$pres2 = new Presentation("pres2.pptx");
try {
foreach($pres2->getSlides() as $slide) {
$pres1->getSlides()->addClone($slide, $pres2->getMasters()->get_Item(0), true);
}
} finally {
if (!java_is_null($pres2)) {
$pres2->dispose();
}
}
$pres1->save("combined.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres1)) {
$pres1->dispose();
}
}
Note
슬라이드 마스터의 레이아웃은 자동으로 결정됩니다. 적절한 레이아웃을 결정할 수 없을 경우addClone 메서드의 allowCloneMissingLayout Boolean 매개변수가 true로 설정되어 있으면 원본 슬라이드의 레이아웃이 사용됩니다. 그렇지 않으면 PptxEditException이 발생합니다.
출력 프레젠테이션의 슬라이드에 다른 레이아웃을 적용하고 싶다면 병합 시 addClone(Slide, LayoutSlide) 메서드를 대신 사용하십시오.
프레젠테이션에서 특정 슬라이드 병합
여러 프레젠테이션에서 특정 슬라이드만 병합하면 맞춤형 슬라이드 덱을 만들 수 있습니다. Aspose.Slides for PHP via Java는 필요한 슬라이드만 선택하여 가져올 수 있게 해줍니다. API는 원본 슬라이드의 서식, 레이아웃 및 디자인을 그대로 유지합니다.
다음 PHP 코드는 새 프레젠테이션을 생성하고 두 다른 프레젠테이션에서 타이틀 슬라이드를 추가한 뒤 파일로 저장합니다:
function getTitleSlide(Presentation $presentation) {
for ($i = 0; $i < java_values($presentation->getSlides()->size()); $i++) {
$slide = $presentation->getSlides()->get_Item($i);
if (java_values($slide->getLayoutSlide()->getLayoutType()) === SlideLayoutType::Title) {
return $slide;
}
}
return null;
}
$presentation = new Presentation();
$presentation1 = new Presentation($folderPath . "presentation1.pptx");
$presentation2 = new Presentation($folderPath . "presentation2.pptx");
try {
$presentation->getSlides()->removeAt(0);
$slide1 = getTitleSlide($presentation1);
if ($slide1 != null)
$presentation->getSlides()->addClone($slide1);
$slide2 = getTitleSlide($presentation2);
if ($slide2 != null)
$presentation->getSlides()->addClone($slide2);
$presentation->save($folderPath . "combined.pptx", SaveFormat::Pptx);
} finally {
$presentation2->dispose();
$presentation1->dispose();
$presentation->dispose();
}
슬라이드 레이아웃을 사용한 프레젠테이션 병합
이 PHP 코드는 선호하는 슬라이드 레이아웃을 적용하면서 프레젠테이션의 슬라이드를 결합하여 하나의 출력 프레젠테이션을 만드는 방법을 보여줍니다:
$pres1 = new Presentation("pres1.pptx");
try {
$pres2 = new Presentation("pres2.pptx");
try {
foreach($pres2->getSlides() as $slide) {
$pres1->getSlides()->addClone($slide, $pres2->getLayoutSlides()->get_Item(0));
}
} finally {
if (!java_is_null($pres2)) {
$pres2->dispose();
}
}
$pres1->save("combined.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres1)) {
$pres1->dispose();
}
}
다른 슬라이드 크기를 가진 프레젠테이션 병합
Note
다른 슬라이드 크기를 가진 프레젠테이션은 병합할 수 없습니다.다른 슬라이드 크기를 가진 2개의 프레젠테이션을 병합하려면, 크기가 다른 프레젠테이션 중 하나를 크기를 맞추어 다른 프레젠테이션과 동일하게 만들어야 합니다.
이 샘플 코드는 설명된 작업을 보여줍니다:
$pres1 = new Presentation("pres1.pptx");
try {
$pres2 = new Presentation("pres2.pptx");
try {
$pres2->getSlideSize()->setSize($pres1->getSlideSize()->getSize()->getWidth(), $pres1->getSlideSize()->getSize()->getHeight(), SlideSizeScaleType::EnsureFit);
foreach($pres2->getSlides() as $slide) {
$pres1->getSlides()->addClone($slide);
}
} finally {
if (!java_is_null($pres2)) {
$pres2->dispose();
}
}
$pres1->save("combined.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres1)) {
$pres1->dispose();
}
}
프레젠테이션 섹션에 슬라이드 병합
이 PHP 코드는 특정 슬라이드를 프레젠테이션 섹션에 병합하는 방법을 보여줍니다:
$pres1 = new Presentation("pres1.pptx");
try {
$pres2 = new Presentation("pres2.pptx");
try {
foreach($pres2->getSlides() as $slide) {
$pres1->getSlides()->addClone($slide, $pres1->getSections()->get_Item(0));
}
} finally {
if (!java_is_null($pres2)) {
$pres2->dispose();
}
}
$pres1->save("combined.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres1)) {
$pres1->dispose();
}
}
슬라이드는 섹션의 끝에 추가됩니다.
또한 보기
Aspose는 FREE Online Collage Maker를 제공합니다. 이 온라인 서비스를 이용하면 JPG → JPG 또는 PNG → PNG 이미지 병합, photo grids 만들기 등을 할 수 있습니다.
Aspose FREE Online Merger를 확인해 보세요. 동일한 형식(PPT → PPT, PPTX → PPTX) 또는 서로 다른 형식(PPT → PPTX, PPTX → ODP) 간에 PowerPoint 프레젠테이션을 병합할 수 있습니다.
FAQ
프레젠테이션을 병합할 때 슬라이드 수에 제한이 있나요?
엄격한 제한은 없습니다. Aspose.Slides는 대용량 파일을 처리할 수 있지만 성능은 파일 크기와 시스템 리소스에 따라 달라집니다. 매우 큰 프레젠테이션의 경우 64비트 JVM을 사용하고 충분한 힙 메모리를 할당하는 것이 권장됩니다.
임베디드 비디오나 오디오가 포함된 프레젠테이션을 병합할 수 있나요?
예, Aspose.Slides는 슬라이드에 삽입된 멀티미디어 콘텐츠를 그대로 보존하지만, 최종 프레젠테이션의 파일 크기가 크게 증가할 수 있습니다.
병합 시 폰트가 유지되나요?
예. 원본 프레젠테이션에 사용된 폰트는 시스템에 설치되어 있거나 embedded된 경우 출력 파일에 그대로 보존됩니다.
