Java を使用したプレゼンテーションの SmartArt グラフィックの管理

SmartArt シェイプの作成

Aspose.Slides for Java は SmartArt シェイプを作成するための API を提供しています。スライドに SmartArt シェイプを作成するには、以下の手順に従ってください。

  1. Presentation クラスのインスタンスを作成します。
  2. インデックスを使用してスライドの参照を取得します。
  3. Add a SmartArt shape にて LayoutType を設定します。
  4. 変更したプレゼンテーションを PPTX ファイルとして保存します。
// Presentation クラスをインスタンス化
Presentation pres = new Presentation();
try {
    // 最初のスライドを取得
    ISlide slide = pres.getSlides().get_Item(0);
    
    // Smart Art シェイプを追加
    ISmartArt smart = slide.getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.BasicBlockList);
    
    // プレゼンテーションを保存
    pres.save("SimpleSmartArt.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
todo:image_alt_text
図: スライドに追加された SmartArt シェイプ

スライド上の SmartArt シェイプへのアクセス

以下のコードは、プレゼンテーション スライドに追加された SmartArt シェイプにアクセスするために使用します。サンプルコードでは、スライド内のすべてのシェイプを走査し、SmartArt シェイプかどうかをチェックします。シェイプが SmartArt タイプであれば、SmartArt インスタンスに型変換します。

// 必要なプレゼンテーションを読み込む
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
    // 最初のスライド内のすべてのシェイプを走査
    for (IShape shape : pres.getSlides().get_Item(0).getShapes())
    {
        // シェイプが SmartArt タイプかどうかを確認
        if (shape instanceof ISmartArt)
        {
            // シェイプを SmartArtEx に型変換
            ISmartArt smart = (ISmartArt)shape;
            System.out.println("Shape Name:" + smart.getName());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

特定の Layout Type を持つ SmartArt シェイプへのアクセス

以下のサンプルコードは、特定の LayoutType を持つ SmartArt シェイプにアクセスするのに役立ちます。SmartArt の LayoutType は読み取り専用であり、SmartArt シェイプが追加されたときにのみ設定されるため、変更できないことに注意してください。

  1. Presentation クラスのインスタンスを作成し、SmartArt シェイプを含むプレゼンテーションをロードします。
  2. インデックスを使用して最初のスライドの参照を取得します。
  3. 最初のスライド内のすべてのシェイプを走査します。
  4. シェイプが SmartArt タイプかどうかを確認し、SmartArt であれば型変換します。
  5. 特定の LayoutType を持つ SmartArt シェイプを確認し、その後に必要な処理を実行します。
Presentation pres = new Presentation("AccessSmartArtShape.pptx");
try {
    // 最初のスライド内のすべてのシェイプを走査
    for (IShape shape : pres.getSlides().get_Item(0).getShapes())
    {
        // シェイプが SmartArt タイプかどうかを確認
        if (shape instanceof ISmartArt)
        {
            // シェイプを SmartArtEx に型変換
            ISmartArt smart = (ISmartArt) shape;

            // SmartArt のレイアウトをチェック
            if (smart.getLayout() == SmartArtLayoutType.BasicBlockList)
            {
                System.out.println("Do some thing here....");
            }
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

SmartArt シェイプのスタイル変更

この例では、任意の SmartArt シェイプのクイックスタイルを変更する方法を学びます。

  1. Presentation クラスのインスタンスを作成し、SmartArt シェイプを含むプレゼンテーションをロードします。
  2. インデックスを使用して最初のスライドの参照を取得します。
  3. 最初のスライド内のすべてのシェイプを走査します。
  4. シェイプが SmartArt タイプかどうかを確認し、SmartArt であれば型変換します。
  5. 特定のスタイルを持つ SmartArt シェイプを見つけます。
  6. SmartArt シェイプに新しいスタイルを設定します。
  7. プレゼンテーションを保存します。
// Presentation クラスをインスタンス化
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
    // 最初のスライドを取得
    ISlide slide = pres.getSlides().get_Item(0);
    
    // 最初のスライド内のすべてのシェイプを走査
    for (IShape shape : slide.getShapes()) 
    {
        // シェイプが SmartArt タイプかどうかを確認
        if (shape instanceof ISmartArt) 
        {
            // シェイプを SmartArtEx に型変換
            ISmartArt smart = (ISmartArt) shape;
    
            // SmartArt のスタイルをチェック
            if (smart.getQuickStyle() == SmartArtQuickStyleType.SimpleFill) {
                // SmartArt のスタイルを変更
                smart.setQuickStyle(SmartArtQuickStyleType.Cartoon);
            }
        }
    }
    // プレゼンテーションを保存
    pres.save("ChangeSmartArtStyle.pptx", SaveFormat.Pptx);
} finally {
    pres.dispose();
}
todo:image_alt_text
図: スタイルが変更された SmartArt シェイプ

SmartArt シェイプのカラースタイル変更

この例では、任意の SmartArt シェイプのカラースタイルを変更する方法を学びます。以下のサンプルコードは、特定のカラースタイルを持つ SmartArt シェイプにアクセスし、そのスタイルを変更します。

  1. Presentation クラスのインスタンスを作成し、SmartArt シェイプを含むプレゼンテーションをロードします。
  2. インデックスを使用して最初のスライドの参照を取得します。
  3. 最初のスライド内のすべてのシェイプを走査します。
  4. シェイプが SmartArt タイプかどうかを確認し、SmartArt であれば型変換します。
  5. 特定のカラースタイルを持つ SmartArt シェイプを見つけます。
  6. SmartArt シェイプに新しいカラースタイルを設定します。
  7. プレゼンテーションを保存します。
// Presentation クラスをインスタンス化
Presentation pres = new Presentation("SimpleSmartArt.pptx");
try {
    // 最初のスライドを取得
    ISlide slide = pres.getSlides().get_Item(0);
    
    // 最初のスライド内のすべてのシェイプを走査
    for (IShape shape : slide.getShapes()) 
    {
        // シェイプが SmartArt タイプかどうかを確認
        if (shape instanceof ISmartArt) 
        {
            // シェイプを SmartArtEx に型変換
            ISmartArt smart = (ISmartArt) shape;
    
            // SmartArt のカラータイプをチェック
            if (smart.getColorStyle() == SmartArtColorType.ColoredFillAccent1) {
                // SmartArt のカラータイプを変更
                smart.setColorStyle(SmartArtColorType.ColorfulAccentColors);
            }
        }
    }
    // プレゼンテーションを保存
    pres.save("ChangeSmartArtColorStyle.pptx", SaveFormat.Pptx);
} finally {
    pres.dispose();
}
todo:image_alt_text
図: カラースタイルが変更された SmartArt シェイプ

FAQ

SmartArt を単一オブジェクトとしてアニメーションさせることはできますか?

はい。SmartArt はシェイプなので、他のシェイプと同様にアニメーション API を使用して標準アニメーション(出入り、強調、モーション パス)を適用できます。

内部 ID がわからない場合、スライド上の特定の SmartArt をどうやって見つけますか?

代替テキスト(AltText)を設定し、その値でシェイプを検索します。これが推奨される方法です。

SmartArt を他のシェイプとグループ化できますか?

はい。SmartArt を画像や表などの他のシェイプとグループ化し、グループを操作できます。

特定の SmartArt の画像(プレビューやレポート用)を取得するには?

シェイプのサムネイル/画像をエクスポートできます。ライブラリは個々のシェイプをラスターファイル (PNG/JPG/TIFF) にレンダリングできます。

プレゼンテーション全体を PDF に変換したとき、SmartArt の外観は保持されますか?

はい。レンダリングエンジンはPDF エクスポートで高忠実度を目指しており、品質や互換性のオプションが用意されています。