PHPでプレゼンテーションのヘッダーとフッターを管理する
概要
PowerPoint はページの種類に応じて異なるヘッダーおよびフッタープレースホルダーを使用します。Aspose.Slides for PHP via Java を使用すると、ヘッダー/フッターマネージャークラスを介してこれらのプレースホルダーのテキストと表示状態を制御できます。
利用可能なプレースホルダーはスコープに依存します:
| スコープ | ヘッダー | フッター | 日付/時刻 | スライド/ページ番号 |
|---|---|---|---|---|
| 通常スライド | いいえ | はい | はい | はい |
| ノートマスター | はい | はい | はい | はい |
| ノートスライド | はい | はい | はい | はい |
| 配布資料マスター | はい | はい | はい | はい |
通常のプレゼンテーションスライドにはヘッダープレースホルダーがありません。ヘッダーはノートページと配布資料で利用できます。通常のスライドでは、代わりにフッター、日付/時刻、スライド番号プレースホルダーを使用してください。
変更のスコープは使用するマネージャーによって決まります。SlideHeaderFooterManager クラスは1つの通常スライドを制御します。NotesSlideHeaderFooterManager クラスは1つのノートスライドを制御します。マスターおよびレイアウトマネージャーは設定を依存スライドへ伝搬させることもでき、MasterHandoutSlideHeaderFooterManager クラスは配布資料マスターを制御します。
通常スライドでフッター、日付/時刻、スライド番号を設定する
通常スライドでは、基本的な手順は各スライドのヘッダー/フッターマネージャーにアクセスし、フッターと日付/時刻のテキストを設定し、必要なプレースホルダーを有効にしてプレゼンテーションを保存することです。スライド番号はプレゼンテーションによって生成されるため、表示/非表示の制御だけが必要です。
テキストを設定するには setFooterText と setDateTimeText を使用し、対応するプレースホルダーを表示するには setFooterVisibility, setDateTimeVisibility, setSlideNumberVisibility を使用します。
以下のエンドツーエンド例は、すべての通常スライドに同じフッター、日付/時刻テキスト、およびスライド番号の表示を適用します:
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
foreach ($presentation->getSlides() as $slide) {
$headerFooterManager = $slide->getHeaderFooterManager();
$headerFooterManager->setFooterText("Company Confidential");
$headerFooterManager->setFooterVisibility(true);
$headerFooterManager->setDateTimeText("Date and time text");
$headerFooterManager->setDateTimeVisibility(true);
$headerFooterManager->setSlideNumberVisibility(true);
}
$presentation->save("presentation_with_slide_footers.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
特定のスライドだけを更新する必要がある場合は、コレクション全体を反復処理する代わりに、getSlides メソッドでそのスライドに直接アクセスしてください。
ノートマスターでヘッダーとフッターを設定する
ノートマスターはノートページの共通フォーマットとプレースホルダーの動作を定義します。ノートマスター自体だけを変更したい場合は、MasterNotesSlideHeaderFooterManager クラスを使用します。
以下の例は、ノートマスターにヘッダー、フッター、日付/時刻テキストを設定し、そのマスター上のすべてのサポートされているプレースホルダーを表示可能にします:
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
$masterNotesSlide = $presentation->getMasterNotesSlideManager()->getMasterNotesSlide();
if (!java_is_null($masterNotesSlide)) {
$headerFooterManager = $masterNotesSlide->getHeaderFooterManager();
$headerFooterManager->setHeaderText("Notes header");
$headerFooterManager->setHeaderVisibility(true);
$headerFooterManager->setFooterText("Notes footer");
$headerFooterManager->setFooterVisibility(true);
$headerFooterManager->setDateTimeText("Date and time text");
$headerFooterManager->setDateTimeVisibility(true);
$headerFooterManager->setSlideNumberVisibility(true);
}
$presentation->save("presentation_with_notes_master_footers.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
getMasterNotesSlide メソッドは、プレゼンテーションにノートマスターが含まれていない場合 null を返します。
ノートマスター設定を子ノートスライドに適用する
ノートマスターはヘッダーおよびフッター設定を自身とすべての依存ノートスライドに適用できます。同一設定をノート階層全体に適用する必要がある場合は、MasterNotesSlideHeaderFooterManager の専用伝搬メソッドを使用してください。
例として、setHeaderAndChildHeadersText と setHeaderAndChildHeadersVisibility はノートマスターのヘッダーとすべての子ヘッダーを更新します。フッター、日付/時刻、スライド番号に対しても同等のメソッドが用意されています。
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
$masterNotesSlide = $presentation->getMasterNotesSlideManager()->getMasterNotesSlide();
if (!java_is_null($masterNotesSlide)) {
$headerFooterManager = $masterNotesSlide->getHeaderFooterManager();
$headerFooterManager->setHeaderAndChildHeadersText("Notes header");
$headerFooterManager->setHeaderAndChildHeadersVisibility(true);
$headerFooterManager->setFooterAndChildFootersText("Notes footer");
$headerFooterManager->setFooterAndChildFootersVisibility(true);
$headerFooterManager->setDateTimeAndChildDateTimesText("Date and time text");
$headerFooterManager->setDateTimeAndChildDateTimesVisibility(true);
$headerFooterManager->setSlideNumberAndChildSlideNumbersVisibility(true);
}
$presentation->save("presentation_with_child_notes_footers.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
上記で使用した伝搬メソッドは setFooterAndChildFootersText, setFooterAndChildFootersVisibility, setDateTimeAndChildDateTimesText, setDateTimeAndChildDateTimesVisibility, setSlideNumberAndChildSlideNumbersVisibility です。
個別ノートスライドでヘッダーとフッターを設定する
ノートスライドは特定の通常スライドに属します。そのノートページだけをカスタマイズしたい場合は、NotesSlideHeaderFooterManager クラスを使用してください。
addNotesSlide メソッドは現在のスライドに対するノートスライドを返し、存在しない場合は新たに作成します。以下の例は、最初のプレゼンテーションスライドに関連付けられたノートページを構成します:
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$notesSlide = $slide->getNotesSlideManager()->addNotesSlide();
$headerFooterManager = $notesSlide->getHeaderFooterManager();
$headerFooterManager->setHeaderText("Header for the first notes page");
$headerFooterManager->setHeaderVisibility(true);
$headerFooterManager->setFooterText("Footer for the first notes page");
$headerFooterManager->setFooterVisibility(true);
$headerFooterManager->setDateTimeText("Date and time text");
$headerFooterManager->setDateTimeVisibility(true);
$headerFooterManager->setSlideNumberVisibility(true);
$presentation->save("presentation_with_custom_notes_footers.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
まずノートマスターから設定を伝搬し、次に個別のノートスライドを変更すると、後のスライド単位の設定によりそのノートページを個別にカスタマイズできます。
配布資料マスターでヘッダーとフッターを設定する
配布資料ページはヘッダー、フッター、日付/時刻、ページ番号プレースホルダーに handout master を使用します。ノートページとは異なり、配布資料の設定は個別の配布資料スライドではなく handout master を通じて管理されます。
getMasterHandoutSlide メソッドで handout master にアクセスします。存在しない場合は、setDefaultMasterHandoutSlide を呼び出してデフォルトの handout master を作成してください。
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("presentation.pptx");
try {
$masterHandoutSlide = $presentation->getMasterHandoutSlideManager()->getMasterHandoutSlide();
if (java_is_null($masterHandoutSlide)) {
$masterHandoutSlide = $presentation->getMasterHandoutSlideManager()->setDefaultMasterHandoutSlide();
}
if (!java_is_null($masterHandoutSlide)) {
$headerFooterManager = $masterHandoutSlide->getHeaderFooterManager();
$headerFooterManager->setHeaderText("Handout header");
$headerFooterManager->setHeaderVisibility(true);
$headerFooterManager->setFooterText("Handout footer");
$headerFooterManager->setFooterVisibility(true);
$headerFooterManager->setDateTimeText("Date and time text");
$headerFooterManager->setDateTimeVisibility(true);
$headerFooterManager->setSlideNumberVisibility(true);
}
$presentation->save("presentation_with_handout_footers.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
スコープと継承を理解する
変更したいスコープに合わせたヘッダー/フッターマネージャーを選択してください:
SlideHeaderFooterManagerは1つの通常スライドのフッター、日付/時刻、スライド番号設定を変更します。LayoutSlideHeaderFooterManagerはレイアウトスライドを制御し、サポートされている設定を依存スライドに伝搬できます。MasterSlideHeaderFooterManagerは通常スライドのマスターを制御し、サポートされている設定を依存スライドに伝搬できます。MasterNotesSlideHeaderFooterManagerはノートマスターを制御し、すべての依存ノートスライドに設定を伝搬できます。NotesSlideHeaderFooterManagerは1つのノートスライドを変更し、フッター、日付/時刻、スライド番号に加えてヘッダープレースホルダーもサポートします。MasterHandoutSlideHeaderFooterManagerは配布資料マスターを変更し、4つすべてのプレースホルダータイプをサポートします。
同一設定を階層全体に適用したい場合は、マスターまたはレイアウトから伝搬させてください。1ページだけにローカル設定が必要な場合は、個別のスライドまたはノートスライドマネージャーを使用してください。
FAQ
通常のスライドにヘッダーを追加できますか?
いいえ。PowerPoint は通常のスライドにヘッダープレースホルダーを定義していません。通常のスライドでは、フッター、日付/時刻、スライド番号プレースホルダーを使用してください。ヘッダープレースホルダーはノートページと配布資料で利用可能です。
フッター、日付/時刻、またはスライド番号のプレースホルダーが表示されていない場合はどうすればよいですか?
該当するヘッダー/フッターマネージャーを使用して表示状態を確認し、必要に応じて有効化してください。例として、isFooterVisible はフッタープレースホルダーが存在するかを報告し、setFooterVisibility はその表示状態を変更します。
スライド番号を 1 以外の値から開始するにはどうすればよいですか?
プレゼンテーションの setFirstSlideNumber メソッドを呼び出してください。その後、スライド番号プレースホルダーは更新された番号シーケンスを使用します。
PDF、画像、または HTML にエクスポートする際、ヘッダーとフッターはどうなりますか?
表示されているヘッダーおよびフッター要素は、出力フォーマットでプレゼンテーションの他のコンテンツと同様にレンダリングされます。その外観はエクスポート対象のページタイプと対応するプレースホルダーの表示設定に依存します。