XPS内のキャンバス(canvases)操作
C++ APIを使用してXPSファイル内のキャンバスをクリップ(clip)および変換(transform)する
XPSファイルにおいて、キャンバス(canvas)はページ上の矩形の領域であり、テキスト、画像、図形などの視覚的なコンテンツを描画することができます。これらの要素のコンテナとして機能し、それらを整理および重ね合わせるためのフレームワークを提供します。キャンバスはドキュメントのさまざまな部分、あるいは複数のドキュメントで再利用でき、XPSドキュメント内のコンテンツを構造化・整理するための柔軟な方法を提供します。XPSファイルのキャンバスの主な特徴:
- キャンバスは他のキャンバス内にネスト(nested)でき、複雑なレイアウト(layouts)や要素のグループ化(grouping)を可能にする階層構造を作成します。
- キャンバスは、移動(translation)、回転(rotation)、拡大縮小(scaling)などのさまざまな操作を使用して変換できます。これにより、コンテンツの柔軟な配置やサイズ変更が可能になります。
- キャンバスは特定の領域にクリップ(clip)でき、コンテンツの表示領域を制限します。これは複雑な形状や効果を作成するのに役立ちます。
- キャンバスには、テキスト実行(text runs)、段落(paragraphs)、テキストボックス(text boxes)など、さまざまな視覚要素を含めることができます。画像、幾何学的な形状、その他のキャンバスを含めることもできます。
ドキュメント内のキャンバスを管理する機能は、Aspose.Page for C++が提供する機能の1つです。このソリューションは、さまざまなページ記述言語、特にXPSと連動します。
XPSファイルのキャンバスを変換(transform)するには、以下のガイドをご確認ください:
- XpsDocumentクラスを使用してXPSファイルを作成します。
- *AddCanvas()*メソッドを使用して、すべてのページ要素に共通するメインキャンバスを作成します。
- *CreateMatrix()*メソッドを使用して、メインキャンバスで左と上のオフセットを作成します。
- *CreatePathGeometry()*メソッドで四角形のパスジオメトリ(rectangle path geometry)を作成します。
- XpsBrushクラスを使用して四角形の塗りつぶし(fill)を作成します。
- キャンバス2に四角形を作成して塗りつぶすには、XpsPathクラスを使用します。
- キャンバス3を移動させて前の四角形の下に新しい四角形を配置するには、*CreateMatrix()*メソッドを使用します。
- このキャンバスをページの右側に移動するには、*Translate()*メソッドを使用します。
- キャンバス4を拡大縮小(scale)するには、*Scale()*メソッドを呼び出します。
- キャンバス5をある点を中心に45度回転させるには、*RotateAround()*メソッドが便利です。
- *XpsDocument.Save()*メソッドを使用して変更したXPSドキュメントを保存します。
キャンバスの変換(canvas transformation)
XPSファイルのキャンバスをクリップ(clip)するには、以下のガイドをご確認ください:
- XpsDocumentクラスを使用してXPSファイルを作成または開きます。
- *AddCanvas()*メソッドを使用して、すべてのページ要素に共通するメインキャンバスを作成します。
- *CreateMatrix()*メソッドを使用して、メインキャンバスで左と上のオフセットを作成します。
- *CreatePathGeometry()*メソッドで四角形のパスジオメトリを作成します。
- XpsBrushクラスを使用して四角形の塗りつぶしを作成します。
- メインキャンバスにクリップ付きの別のキャンバスを追加するには、*AddCanvas()*メソッドを再度呼び出します。
- XpsPathGeometryクラスを使用して、クリップ用の円ジオメトリを作成します。
- このキャンバスに四角形を作成して塗りつぶすには、XpsPathクラスを使用します。
- AddCanvas()メソッドで別のキャンバスを追加し、そのキャンバスに四角形を作成してXpsPathGeometryクラスでストローク(stroke)を施します。
- *XpsDocument.Save()*メソッドを使用して変更したXPSドキュメントを保存します。
キャンバスのクリップ(canvas clipping)
XPS XPS ファイル形式とは
XPS (XML Paper Specification) は、Microsoft が提供する PDF の代替フォーマットです。XML/HTML ベースで、プラットフォームに依存せずレイアウトを保持します。