在 PHP 中檢索與更新簡報檢視屬性
簡介
普通檢視由三個內容區域組成:投影片本身、側邊內容區域以及底部內容區域。相關於不同內容區域位置的屬性。這些資訊允許應用程式將其檢視狀態儲存至檔案,因而在重新開啟時,檢視會保持在上次儲存簡報時的相同狀態。
已新增方法 ViewProperties::getNormalViewProperties 以提供對簡報的普通檢視屬性的存取。
已新增 NormalViewProperties、NormalViewRestoredProperties 類別及其衍生類別,以及 SplitterBarStateType 列舉。
關於 INormalViewProperties
代表普通檢視屬性。
方法 getShowOutlineIcons 與 setShowOutlineIcons 指定當在普通檢視模式的任何內容區域顯示大綱內容時,應用程式是否應顯示圖示。
方法 getSnapVerticalSplitter 與 setSnapVerticalSplitter 指定側邊區域足夠小時,垂直分割條是否應自動縮至最小化狀態。
屬性 getPreferSingleView 與 setPreferSingleView 指定使用者是否偏好以單一全視窗內容區域取代具有三個內容區域的標準普通檢視。如果啟用,應用程式可能會選擇將其中一個內容區域顯示於整個視窗。
方法 getVerticalBarState 與 getHorizontalBarState 指定水平或垂直分割條應顯示的狀態。水平分割條將投影片與投影片下方的內容區域分開,垂直分割條將投影片與側邊內容區域分開。可能的值為 SplitterBarStateType::Minimized、SplitterBarStateType::Maximized 和 SplitterBarStateType::Restored。
方法 getRestoredLeft 與 getRestoredTop 指定當 SplitterBarStateType::Restored 值套用於 getVerticalBarState 與 getHorizontalBarState 時,普通檢視的上方或側邊投影片區域的大小。
關於還原 INormalViewProperties
指定普通檢視中投影片區域的尺寸(作為 getRestoredTop 的子項時以寬度為準,作為 getRestoredLeft 的子項時以高度為準),當區域為可變的還原大小(既非最小化亦非最大化)時的大小。
方法 getDimensionSize 指定投影片區域的尺寸(作為 restoredTop 的子項時為寬度,作為 restoredLeft 的子項時為高度)。
方法 getAutoAdjust 指定在調整包含檢視的視窗大小時,側邊內容區域的大小是否應自動補償新尺寸。
以下範例示範如何存取簡報的 ViewProperties::getNormalViewProperties 屬性。
$pres = new Presentation();
try {
$pres->getViewProperties()->getNormalViewProperties()->setHorizontalBarState(SplitterBarStateType::Restored);
$pres->getViewProperties()->getNormalViewProperties()->setVerticalBarState(SplitterBarStateType::Maximized);
# 還原簡報的檢視屬性
$pres->getViewProperties()->getNormalViewProperties()->getRestoredTop()->setAutoAdjust(true);
$pres->getViewProperties()->getNormalViewProperties()->getRestoredTop()->setDimensionSize(80);
$pres->getViewProperties()->getNormalViewProperties()->setShowOutlineIcons(true);
$pres->save("presentation_normal_view_state.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
設定預設縮放值
為了設定檢視屬性,請依照以下步驟操作:
- 建立 Presentation 類別的實例。
- 設定 Presentation 的 View Properties。
- 將簡報寫入為 PPTX 檔案。
在下面的範例中,我們已設定投影片檢視與備註檢視的縮放值。
$presentation = new Presentation();
try {
# 設定簡報的檢視屬性
$presentation->getViewProperties()->getSlideViewProperties()->setScale(100); // 投影片檢視的縮放值(百分比)
$presentation->getViewProperties()->getNotesViewProperties()->setScale(100); // 逐稿檢視的縮放值(百分比)
$presentation->save("Zoom_out.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
常見問題
我可以為簡報的不同章節設定不同的檢視設定嗎?
View settings 於簡報層級定義(Normal View/Slide View),而非每個章節,所以在開啟文件時,整份文件會套用同一組參數。
我可以為不同使用者預先定義不同的檢視狀態嗎?
否。設定儲存在檔案中,為所有使用者共用。檢視程式可能會遵循使用者偏好,但檔案本身僅包含一套檢視屬性。
我可以製作含有預先定義檢視屬性的範本,以使新簡報以相同方式開啟嗎?
可以。由於 view properties 儲存在簡報層級,您可以將它們嵌入範本,之後以該範本建立新文件,即可擁有相同的初始檢視設定。