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

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

Aspose.Slides は、インクオブジェクトの作成と管理に必要なすべての Ink タイプ(例: Ink クラス)を提供します。

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

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

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

ink_powerpoint1

Inkshape トレース

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

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

ink_powerpoint2

描画用ブラシ プロパティ

トレース要素の点を結ぶラインを描画するためにブラシを使用できます。ブラシは Brush.ColorBrush.Size プロパティに対応する独自の色とサイズを持ちます。

インクブラシの色を設定する

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

Presentation pres = new Presentation("pres.pptx");
try {
    IInk ink = (IInk)pres.getSlides().get_Item(0).getShapes().get_Item(0);
    IInkTrace[] traces = ink.getTraces();
    IInkBrush brush = traces[0].getBrush();
    Color brushColor = brush.getColor();
    brush.setColor(Color.RED);
} finally {
    if (pres != null) pres.dispose();
}

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

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

Presentation pres = new Presentation("pres.pptx");
try {
    IInk ink = (IInk)pres.getSlides().get_Item(0).getShapes().get_Item(0);
    IInkTrace[] traces = ink.getTraces();
    IInkBrush brush = traces[0].getBrush();
    Dimension2D brushSize = brush.getSize();
    brush.setSize(new Dimension(5, 10));
} finally {
    if (pres != null) pres.dispose();
}

通常、ブラシの幅と高さは一致しないため、PowerPoint はブラシサイズを表示しません(データ セクションは灰色表示)。しかし、ブラシの幅と高さが一致する場合、PowerPoint は次のようにサイズを表示します。

ink_powerpoint3

わかりやすくするために、インクオブジェクトの高さを増やし、重要な寸法を確認しましょう。

ink_powerpoint4

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

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

ink_powerpoint5

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

ink_powerpoint6

さらに読む