PHP を使用してプレゼンテーションの SmartArt グラフィックスを管理する
SmartArt シェイプの作成する
Aspose.Slides for PHP via Java は SmartArt シェイプを作成するための API を提供しています。スライドに SmartArt シェイプを作成するには、以下の手順に従ってください。
- Presentation クラスのインスタンスを作成します。
- インデックスを使用してスライドの参照を取得します。
- SmartArt シェイプを追加 を、LayoutType を設定して実行します。
- 変更されたプレゼンテーションを PPTX ファイルとして保存します。
# Presentation クラスのインスタンス化
$pres = new Presentation();
try {
# 最初のスライドを取得
$slide = $pres->getSlides()->get_Item(0);
# Smart Art シェイプを追加
$smart = $slide->getShapes()->addSmartArt(0, 0, 400, 400, SmartArtLayoutType::BasicBlockList);
# プレゼンテーションを保存
$pres->save("SimpleSmartArt.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
![]() |
|---|
| Figure: スライドに追加された SmartArt シェイプ |
スライド上の SmartArt シェイプにアクセスする
次のコードは、プレゼンテーションスライドに追加された SmartArt シェイプにアクセスするために使用されます。サンプルコードでは、スライド内のすべてのシェイプを走査し、それが SmartArt シェイプかどうかを確認します。シェイプが SmartArt タイプの場合、SmartArt インスタンスに型キャストします。
# 指定したプレゼンテーションをロード
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# 最初のスライド内のすべてのシェイプを走査
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# シェイプが SmartArt タイプか確認
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# シェイプを SmartArtEx に型キャスト
$smart = $shape;
echo("Shape Name:" . $smart->getName());
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
特定の LayoutType を持つ SmartArt シェイプにアクセスする
次のサンプルコードは、特定の LayoutType を持つ SmartArt シェイプにアクセスするのに役立ちます。SmartArt の LayoutType は読み取り専用であり、SmartArt シェイプが追加されたときにのみ設定されるため、変更できないことに注意してください。
- Presentation クラスのインスタンスを作成し、SmartArt シェイプを含むプレゼンテーションをロードします。
- インデックスを使用して最初のスライドの参照を取得します。
- 最初のスライド内のすべてのシェイプを走査します。
- シェイプが SmartArt タイプかどうかを確認し、SmartArt であれば選択したシェイプを SmartArt に型キャストします。
- 特定の LayoutType を持つ SmartArt シェイプを確認し、その後に必要な処理を実行します。
$pres = new Presentation("AccessSmartArtShape.pptx");
try {
# 最初のスライド内のすべてのシェイプを走査
foreach($pres->getSlides()->get_Item(0)->getShapes() as $shape) {
# シェイプが SmartArt タイプか確認
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# シェイプを SmartArtEx に型キャスト
$smart = $shape;
# SmartArt レイアウトを確認
if ($smart->getLayout() == SmartArtLayoutType::BasicBlockList) {
echo("Do some thing here....");
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
SmartArt シェイプのスタイルを変更する
この例では、任意の SmartArt シェイプのクイック スタイルを変更する方法を学びます。
- Presentation クラスのインスタンスを作成し、SmartArt シェイプを含むプレゼンテーションをロードします。
- インデックスを使用して最初のスライドの参照を取得します。
- 最初のスライド内のすべてのシェイプを走査します。
- シェイプが SmartArt タイプかどうかを確認し、SmartArt であれば選択したシェイプを SmartArt に型キャストします。
- 特定の Style を持つ SmartArt シェイプを検索します。
- SmartArt シェイプに新しい Style を設定します。
- プレゼンテーションを保存します。
# Presentation クラスをインスタンス化
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# 最初のスライドを取得
$slide = $pres->getSlides()->get_Item(0);
# 最初のスライド内のすべてのシェイプを走査
foreach($slide->getShapes() as $shape) {
# シェイプが SmartArt タイプか確認
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# シェイプを SmartArtEx に型キャスト
$smart = $shape;
# SmartArt のスタイルを確認
if ($smart->getQuickStyle() == SmartArtQuickStyleType::SimpleFill) {
# SmartArt のスタイルを変更
$smart->setQuickStyle(SmartArtQuickStyleType::Cartoon);
}
}
}
# プレゼンテーションを保存
$pres->save("ChangeSmartArtStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Figure: スタイルが変更された SmartArt シェイプ |
SmartArt シェイプのカラースタイルを変更する
この例では、任意の SmartArt シェイプのカラースタイルを変更する方法を学びます。以下のサンプルコードでは、特定のカラースタイルを持つ SmartArt シェイプにアクセスし、そのスタイルを変更します。
- Presentation クラスのインスタンスを作成し、SmartArt シェイプを含むプレゼンテーションをロードします。
- インデックスを使用して最初のスライドの参照を取得します。
- 最初のスライド内のすべてのシェイプを走査します。
- シェイプが SmartArt タイプかどうかを確認し、SmartArt であれば選択したシェイプを SmartArt に型キャストします。
- 特定の Color Style を持つ SmartArt シェイプを検索します。
- SmartArt シェイプに新しい Color Style を設定します。
- プレゼンテーションを保存します。
# Presentation クラスをインスタンス化
$pres = new Presentation("SimpleSmartArt.pptx");
try {
# 最初のスライドを取得
$slide = $pres->getSlides()->get_Item(0);
# 最初のスライド内のすべてのシェイプを走査
foreach($slide->getShapes() as $shape) {
# シェイプが SmartArt タイプか確認
if (java_instanceof($shape, new JavaClass("com.aspose.slides.SmartArt"))) {
# シェイプを SmartArtEx に型キャスト
$smart = $shape;
# SmartArt のカラータイプを確認
if ($smart->getColorStyle() == SmartArtColorType::ColoredFillAccent1) {
# SmartArt のカラータイプを変更
$smart->setColorStyle(SmartArtColorType::ColorfulAccentColors);
}
}
}
# プレゼンテーションを保存
$pres->save("ChangeSmartArtColorStyle.pptx", SaveFormat::Pptx);
} finally {
$pres->dispose();
}
![]() |
|---|
| Figure: カラースタイルが変更された SmartArt シェイプ |
FAQ
SmartArt を単一オブジェクトとしてアニメーション化できますか?
はい。SmartArt はシェイプなので、他のシェイプと同様にアニメーション API を使用して standard animations(開始、終了、強調、動きのパス)を適用できます。
スライド上の特定の SmartArt を内部 ID が分からない場合、どうやって見つけられますか?
代替テキスト(AltText)を設定して使用し、その値でシェイプを検索します。これは対象シェイプを見つける推奨方法です。
SmartArt を他のシェイプとグループ化できますか?
はい。SmartArt を他のシェイプ(画像、テーブルなど)とグループ化し、manipulate the group を使用して操作できます。
特定の SmartArt の画像(プレビューやレポート用など)を取得するには?
シェイプのサムネイル/画像をエクスポートします。ライブラリは個々のシェイプを render individual shapes してラスターファイル(PNG/JPG/TIFF)に出力できます。
プレゼンテーション全体を PDF に変換したとき、SmartArt の外観は保持されますか?
はい。レンダリングエンジンは PDF export において高忠実度を目指しており、さまざまな品質と互換性オプションが用意されています。

