使用 PHP 管理簡報中的投影片過渡
概述
本文說明如何使用 Aspose.Slides 在簡報中管理投影片過渡。它展示了如何將過渡類型套用到投影片、設定過渡行為(例如點擊時前進或在指定時間後前進)、檢查並停用自動前進、使用 Morph 過渡及其類型,以及設定過渡效果選項。範例展示了如何載入或建立簡報、修改選取投影片的過渡設定,並將結果儲存為 PPTX 檔案。本文亦回答了關於過渡速度、過渡音效、將相同過渡套用至多個投影片,以及檢查投影片目前設定的過渡等常見問題。
新增投影片過渡
若要建立簡單的投影片過渡效果,請依照以下步驟操作:
- 建立 Presentation 類別的實例。
- 透過 TransitionType 列舉,從 Aspose.Slides for PHP via Java 提供的過渡效果中套用投影片過渡類型。
- 寫入已修改的簡報檔案。
# 實例化 Presentation 類別以載入來源簡報檔案
$presentation = new Presentation("AccessSlides.pptx");
try {
# 在投影片 1 套用圓形類型過渡
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->setType(TransitionType::Circle);
# 在投影片 2 套用梳狀類型過渡
$presentation->getSlides()->get_Item(1)->getSlideShowTransition()->setType(TransitionType::Comb);
# 將簡報寫入磁碟
$presentation->save("SampleTransition_out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
新增進階投影片過渡
在上述段落中,我們僅在投影片上套用了簡單的過渡效果。現在,若要使該簡單過渡效果更佳且可控,請依照以下步驟操作:
- 建立 Presentation 類別的實例。
- 從 Aspose.Slides for PHP via Java 提供的過渡效果中套用投影片過渡類型。
- 您也可以將過渡設定為點擊時前進、在特定時間後前進,或兩者同時設定。
- 如果投影片過渡已啟用點擊時前進,則過渡僅會在使用者點擊滑鼠時前進。此外,若設定了「AdvanceAfterTime」屬性,過渡將在指定的時間過後自動前進。
- 將已修改的簡報寫入為簡報檔案。
# 實例化代表簡報檔案的 Presentation 類別
$pres = new Presentation("BetterSlideTransitions.pptx");
try {
# 在投影片 1 套用圓形類型過渡
$pres->getSlides()->get_Item(0)->getSlideShowTransition()->setType(TransitionType::Circle);
# 設定 3 秒的過渡時間
$pres->getSlides()->get_Item(0)->getSlideShowTransition()->setAdvanceOnClick(true);
$pres->getSlides()->get_Item(0)->getSlideShowTransition()->setAdvanceAfterTime(3000);
# 在投影片 2 套用梳狀類型過渡
$pres->getSlides()->get_Item(1)->getSlideShowTransition()->setType(TransitionType::Comb);
# 設定 5 秒的過渡時間
$pres->getSlides()->get_Item(1)->getSlideShowTransition()->setAdvanceOnClick(true);
$pres->getSlides()->get_Item(1)->getSlideShowTransition()->setAdvanceAfterTime(5000);
# 在投影片 3 套用縮放類型過渡
$pres->getSlides()->get_Item(2)->getSlideShowTransition()->setType(TransitionType::Zoom);
# 設定 7 秒的過渡時間
$pres->getSlides()->get_Item(2)->getSlideShowTransition()->setAdvanceOnClick(true);
$pres->getSlides()->get_Item(2)->getSlideShowTransition()->setAdvanceAfterTime(7000);
# 將簡報寫入磁碟
$pres->save("SampleTransition_out.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
Morph 過渡
Morph 過渡允許您在投影片之間動畫化平滑的移動。本文說明了其概念以及如何使用 Morph 過渡。若要有效使用 Morph 過渡,您需要兩張至少有一個共同物件的投影片。最簡單的方法是複製投影片,然後將第二張投影片上的物件移動到其他位置。
以下程式碼片段示範如何將包含文字的投影片副本加入簡報,並為第二張投影片設定 morph type 過渡。
$presentation = new Presentation();
try {
$autoshape = $presentation->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, 100, 100, 400, 100);
$autoshape->getTextFrame()->setText("Morph Transition in PowerPoint Presentations");
$presentation->getSlides()->addClone($presentation->getSlides()->get_Item(0));
$shape = $presentation->getSlides()->get_Item(1)->getShapes()->get_Item(0);
$shape->setX($shape->getX() + 100);
$shape->setY($shape->getY() + 50);
$shape->setWidth($shape->getWidth() - 200);
$shape->setHeight($shape->getHeight() - 10);
$presentation->getSlides()->get_Item(1)->getSlideShowTransition()->setType(TransitionType::Morph);
$presentation->save("presentation-out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Morph 過渡類型
已新增 TransitionMorphType 列舉。它代表不同類型的 Morph 投影片過渡。
TransitionMorphType 列舉有三個成員:
- ByObject:Morph 過渡會將形狀視為不可分割的物件來執行。
- ByWord:Morph 過渡會盡可能以單字為單位傳輸文字。
- ByChar:Morph 過渡會盡可能以字元為單位傳輸文字。
以下程式碼片段示範如何為投影片設定 Morph 過渡並變更 Morph 類型:
$presentation = new Presentation("presentation.pptx");
try {
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->setType(TransitionType::Morph);
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->getValue()->setMorphType(TransitionMorphType::ByWord);
$presentation->save("presentation-out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
設定過渡效果
Aspose.Slides for PHP via Java 支援設定過渡效果,例如從黑色、從左側、從右側等。若要設定過渡效果,請依照以下步驟操作:
- 建立 Presentation 類別的實例。
- 取得投影片的參考。
- 設定過渡效果。
- 將簡報寫入為 PPTX 檔案。
在下方範例中,我們已設定過渡效果。
# 建立 Presentation 類別的實例
$presentation = new Presentation("AccessSlides.pptx");
try {
# 設定效果
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->setType(TransitionType::Cut);
$presentation->getSlides()->get_Item(0)->getSlideShowTransition()->getValue()->setFromBlack(true);
# 將簡報寫入磁碟
$presentation->save("SetTransitionEffects_out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
常見問題
我可以控制投影片過渡的播放速度嗎?
是的。使用 TransitionSpeed 設定,將過渡的 speed 設為慢速、普通或快速等。
我可以為過渡附加音訊並使其循環播放嗎?
是的。您可以為過渡嵌入音效,並透過設定如音效模式與循環等來控制行為(例如 setSound、setSoundMode、setSoundLoop,以及 setSoundIsBuiltIn 和 setSoundName 等中繼資料)。
將相同過渡套用至每張投影片的最快方法是什麼?
在每張投影片的過渡設定中配置所需的過渡類型;過渡是依投影片儲存的,因此在所有投影片上套用相同類型即可取得一致的結果。
如何檢查投影片目前設定的過渡是什麼?
檢查投影片的 transition settings,並讀取其 transition type,即可知道目前套用的效果是什麼。