PHP でプレゼンテーション ビュー プロパティを取得および更新する
通常ビューは 3 つのコンテンツ領域で構成されます: スライド自体、サイドコンテンツ領域、そしてボトムコンテンツ領域です。各コンテンツ領域の位置に関するプロパティです。この情報により、アプリケーションはビューの状態をファイルに保存でき、再度開いたときにプレゼンテーションが最後に保存された状態と同じビューになるようにします。
メソッド ViewProperties.getNormalViewProperties が追加され、プレゼンテーションの通常ビュー プロパティへのアクセスを提供します。
NormalViewProperties、NormalViewRestoredProperties クラスとその派生クラス、SplitterBarStateType 列挙体が追加されました。
INormalViewProperties について
通常ビューのプロパティを表します。
メソッド getShowOutlineIcons と setShowOutlineIcons は、通常ビュー モードのいずれかのコンテンツ領域でアウトライン コンテンツを表示する際に、アプリケーションがアイコンを表示すべきかどうかを指定します。
メソッド getSnapVerticalSplitter と setSnapVerticalSplitter は、サイド領域が十分に小さい場合に垂直スプリッタが最小化状態にスナップすべきかどうかを指定します。
プロパティ getPreferSingleView と setPreferSingleView は、ユーザーが標準の 3 つのコンテンツ領域による通常ビューではなく、ウィンドウ全体で単一コンテンツ領域を表示することを好むかどうかを指定します。有効にすると、アプリケーションは任意のコンテンツ領域をウィンドウ全体に表示することを選択できる場合があります。
メソッド getVerticalBarState と getHorizontalBarState は、水平または垂直スプリッタ バーが表示される状態を指定します。水平スプリッタ バーはスライドとスライド下のコンテンツ領域を分離し、垂直スプリッタ バーはスライドとサイド コンテンツ領域を分離します。可能な値は SplitterBarStateType::Minimized、SplitterBarStateType::Maximized および SplitterBarStateType::Restored です。
メソッド getRestoredLeft と getRestoredTop は、SplitterBarStateType::Restored が getVerticalBarState および getHorizontalBarState に適用された場合の、通常ビューの上部または側面のスライド領域のサイズを指定します。
INormalViewProperties の復元について
領域が可変の復元サイズ(最小化でも最大化でもない)である場合の、通常ビューにおけるスライド領域(getRestoredTop の子の場合は幅、getRestoredLeft の子の場合は高さ)のサイズを指定します。
メソッド getDimensionSize は、復元されたトップの子であれば幅、復元されたレフトの子であれば高さとして、スライド領域のサイズを指定します。
メソッド 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();
}
FAQ
プレゼンテーションの異なるセクションごとに異なるビュー設定を設定できますか?
ビュー設定はプレゼンテーション レベルで定義され(Normal View/Slide View)、セクション単位ではなく、開くときにドキュメント全体に単一のパラメータセットが適用されます。
異なるユーザー向けに異なるビュー状態を事前定義できますか?
いいえ。設定はファイルに保存され、共有されます。ビューアー アプリケーションはユーザーの設定を考慮できる場合がありますが、ファイル自体は 1 つのビュー プロパティ セットしか保持しません。
テンプレートに事前定義された View Properties を埋め込み、新しいプレゼンテーションを同じ方法で開くようにできますか?
はい。ビュー プロパティはプレゼンテーション レベルで保存されるため、テンプレートに埋め込んでおけば、同じ初期ビュー構成で新しいドキュメントを作成できます。