Android 上の PowerPoint プレゼンテーションで SmartArt を管理する

SmartArt オブジェクトからテキストを取得する

現在、TextFrame メソッドが ISmartArtShape インターフェイスと SmartArtShape クラスにそれぞれ追加されました。このプロパティを使用すると、ノードのテキストだけでなく、SmartArt からすべてのテキストを取得できます。以下のサンプルコードは、SmartArt ノードからテキストを取得する方法を示しています。

Presentation pres = new Presentation("Presentation.pptx");
try {
    ISlide slide = pres.getSlides().get_Item(0);
    ISmartArt smartArt = (ISmartArt)slide.getShapes().get_Item(0);

    ISmartArtNodeCollection smartArtNodes = smartArt.getAllNodes();
    for (ISmartArtNode smartArtNode : smartArtNodes)
    {
        for (ISmartArtShape nodeShape : smartArtNode.getShapes())
        {
            if (nodeShape.getTextFrame() != null)
                System.out.println(nodeShape.getTextFrame().getText());
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

SmartArt オブジェクトのレイアウト タイプを変更する

SmartArt のレイアウト タイプを変更するには、以下の手順に従ってください。

  • Presentation クラスのインスタンスを作成します。
  • インデックスを使用してスライドの参照を取得します。
  • BasicBlockList の SmartArt を追加します。
  • LayoutType を BasicProcess に変更します。
  • プレゼンテーションを PPTX ファイルとして保存します。

以下の例では、2 つの図形の間にコネクタを追加しています。

Presentation pres = new Presentation();
try {
    // SmartArt BasicProcess を追加
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicBlockList);

    // LayoutType を BasicProcess に変更
    smart.setLayout(SmartArtLayoutType.BasicProcess);

    // プレゼンテーションを保存
    pres.save("ChangeSmartArtLayout_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

SmartArt オブジェクトの Visibility プロパティを確認する

注意: メソッド ISmartArtNode.isHidden() は、データモデルでこのノードが非表示ノードである場合に true を返します。SmartArt の任意のノードの非表示プロパティを確認するには、以下の手順に従ってください。

  • Presentation クラスのインスタンスを作成します。
  • SmartArt の RadialCycle を追加します。
  • SmartArt にノードを追加します。
  • visibility プロパティを確認します。
  • プレゼンテーションを PPTX ファイルとして保存します。

以下の例では、2 つの図形の間にコネクタを追加しています。

Presentation pres = new Presentation();
try {
    // SmartArt BasicProcess を追加 
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.RadialCycle);

    // SmartArt にノードを追加 
    ISmartArtNode node = smart.getAllNodes().addNode();

    // isHidden プロパティを確認
    boolean hidden = node.isHidden(); // true を返します

    if (hidden)
    {
        // 何らかのアクションまたは通知を実行
    }
    // プレゼンテーションを保存
    pres.save("CheckSmartArtHiddenProperty_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

組織図のタイプを取得または設定する

メソッド ISmartArtNode.getOrganizationChartLayout()setOrganizationChartLayout(int) は、現在のノードに関連付けられた組織図タイプの取得または設定を行います。組織図タイプを取得または設定するには、以下の手順に従ってください。

  • Presentation クラスのインスタンスを作成します。
  • スライド上に SmartArt を追加します。
  • 組織図タイプを取得または set the organization chart type します。
  • プレゼンテーションを PPTX ファイルとして保存します。

以下の例では、2 つの図形の間にコネクタを追加しています。

Presentation pres = new Presentation();
try {
    // SmartArt BasicProcess を追加
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.OrganizationChart);

    // 組織図のタイプを取得または設定
    smart.getNodes().get_Item(0).setOrganizationChartLayout(OrganizationChartLayoutType.LeftHanging);

    // プレゼンテーションを保存
    pres.save("OrganizeChartLayoutType_out.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

画像組織図の作成

Aspose.Slides for Android via Java は、PictureOrganization チャートを簡単に作成するためのシンプルな API を提供します。スライド上にチャートを作成する手順は以下の通りです。

  1. Presentation クラスのインスタンスを作成します。
  2. インデックスでスライドの参照を取得します。
  3. デフォルトデータと希望のタイプ (ChartType.PictureOrganizationChart) のチャートを追加します。
  4. 変更されたプレゼンテーションを PPTX ファイルに書き込みます。

以下のコードはチャート作成に使用されます。

Presentation pres = new Presentation("test.pptx");
try {
    ISmartArt smartArt = pres.getSlides().get_Item(0).getShapes().addSmartArt(0, 0, 400, 400, SmartArtLayoutType.PictureOrganizationChart);
    pres.save("OrganizationChart.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

SmartArt の状態を取得または設定する

SmartArt のレイアウト タイプを変更するには、以下の手順に従ってください。

  1. Presentation クラスのインスタンスを作成します。
  2. スライド上に SmartArt を追加します。
  3. Get または Set で SmartArt ダイアグラムの状態を取得または設定します。
  4. プレゼンテーションを PPTX ファイルとして保存します。

以下のコードは SmartArt の状態を取得または設定するために使用されます。

// PPTX ファイルを表す Presentation クラスのインスタンスを作成
Presentation pres = new Presentation();
try {
    // SmartArt BasicProcess を追加
    ISmartArt smart = pres.getSlides().get_Item(0).getShapes().addSmartArt(10, 10, 400, 300, SmartArtLayoutType.BasicProcess);
    
    // SmartArt ダイアグラムの状態を取得または設定
    smart.setReversed(true);
    boolean flag = smart.isReversed();
    
    // プレゼンテーションを保存
    pres.save("output.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

FAQ

SmartArt は RTL 言語のミラーリング/反転をサポートしていますか?

はい。選択された SmartArt タイプが反転をサポートしている場合、setReversed メソッドはダイアグラムの方向 (LTR/RTL) を切り替えます。

同じスライドまたは別のプレゼンテーションに SmartArt をコピーして書式を保持するにはどうすればよいですか?

Shapes コレクションの SmartArt シェイプをクローンするShapeCollection.addClone) またはこのシェイプを含むスライド全体を スライド全体をクローンする することでコピーできます。どちらの方法もサイズ、位置、スタイリングを保持します。

プレビューやウェブエクスポートのために SmartArt をラスタ画像にレンダリングするには?

スライド (/slides/ja/androidjava/convert-powerpoint-to-png/)(またはプレゼンテーション全体)を PNG/JPEG に変換する API を使用してレンダリングすると、SmartArt はスライドの一部として描画されます。

スライドに複数の SmartArt がある場合、特定の SmartArt をプログラムで選択するにはどうすればよいですか?

一般的な方法は、代替テキスト(Alt Text)や 名前 を使用して属性でシェイプを検索し、スライド シェープ 内でその属性でシェイプを探し、タイプが [SmartArt] であることを確認することです。ドキュメントはシェイプの検索と操作の典型的な手法を説明しています。