.NET でプレゼンテーションのインクオブジェクトを管理する

PowerPoint はインク機能を提供し、標準外の図形を描くことができ、他のオブジェクトを強調したり、接続やプロセスを示したり、スライド上の特定の項目に注意を引くために使用できます。

Aspose.Slides は、インク オブジェクトの作成と管理に必要な型を含む Aspose.Slides.Ink インターフェイスを提供します。

通常オブジェクトとインクオブジェクトの違い

PowerPoint スライド上のオブジェクトは通常、シェイプ オブジェクトで表されます。シェイプ オブジェクトは、最もシンプルな形では、オブジェクト自体の領域(フレーム)とそのプロパティを定義するコンテナです。これにはコンテナ領域のサイズ、コンテナの形状、コンテナの背景などが含まれます。詳細は Shape Layout Format を参照してください。

しかし、PowerPoint がインク オブジェクトを扱う場合、コンテナのサイズ以外のすべてのフレーム(コンテナ)プロパティは無視されます。コンテナ領域のサイズは標準の widthheight の値で決まります:

ink_powerpoint1

インクシェイプ トレース

トレースは、ユーザーがデジタル インクで書く際のペンの軌跡を記録するための基本要素または標準です。トレースは、接続された点のシーケンスを記述する記録です。

最も単純なエンコード形式は、各サンプル点の X および Y 座標を指定します。すべての接続された点がレンダリングされると、次のような画像が生成されます:

ink_powerpoint2

描画用ブラシ プロパティ

ブラシを使用して、トレース要素の点を結ぶ線を描画できます。ブラシには Brush.ColorBrush.Size プロパティに対応する独自の色とサイズがあります。

インク ブラシの色を設定

この C# コードはブラシの色を設定する方法を示しています:

using (Presentation pres = new Presentation("pres.pptx"))
{
    IInk ink = (IInk)pres.Slides[0].Shapes[0];
    IInkTrace[] traces = ink.Traces;
    IInkBrush brush = traces[0].Brush;
    Color brushColor = brush.Color;
    brush.Color = Color.Red;
}

インク ブラシのサイズを設定

この C# コードはブラシのサイズを設定する方法を示しています:

using (Presentation pres = new Presentation("pres.pptx"))
{
    IInk ink = (IInk)pres.Slides[0].Shapes[0];
    IInkTrace[] traces = ink.Traces;
    IInkBrush brush = traces[0].Brush;
    SizeF brushSize = brush.Size;
    brush.Size = new SizeF(5f, 10f);
}

一般に、ブラシの幅と高さは一致せず、PowerPoint はブラシサイズを表示しません(データ セクションはグレー表示)。ただし、ブラシの幅と高さが一致する場合、PowerPoint は次のようにサイズを表示します:

ink_powerpoint3

明確にするために、インク オブジェクトの高さを増やして重要な寸法を確認しましょう:

ink_powerpoint4

コンテナ(フレーム)はブラシのサイズを考慮せず、常に線の太さがゼロであると見なします(最後の画像を参照)。

したがって、インク オブジェクト全体の表示領域を決定するには、トレースオブジェクトのブラシサイズを考慮する必要があります。ここで、対象オブジェクト(手書きテキスト トレース オブジェクト)はコンテナ(フレーム)サイズに合わせてスケーリングされています。コンテナ(フレーム)のサイズが変わると、ブラシサイズは一定のままであり、逆も同様です。

ink_powerpoint5

テキストを扱う場合も、PowerPoint は同様の挙動を示します:

ink_powerpoint6

さらに読む