図面、シェイプ、およびクリップ・アートの追加
「パブリッシャ」は、Microsoft Wordの描画、シェイプおよびクリップ・アート機能をサポートしています。 これらのオブジェクトはテンプレートに追加でき、最終的なPDF出力またはHTML出力にレンダリングされます(他の出力タイプではサポートされていません)。
次のAutoShapeカテゴリがサポートされています:
-
明細-スト・レート、矢印、コネクタ、カーブ、フリー・フォーム、およびスクライブル。
-
コネクタ-スト・レート・コネクタのみがサポートされています。 曲線コネクタは、曲線線を使用し、線に終点スタイルを指定することで実現できます。
-
基本シェイプ-すべてのシェイプがサポートされています。 シェイプ・オブジェクト内にイメージを含めることはできません。
-
ブロック矢印-すべての矢印がサポートされています。
-
フローチャート-すべてのフローチャート・オブジェクトがサポートされています。
-
星とバナー-すべてのオブジェクトがサポートされています。
-
コールアウト-「線」吹き出しはサポートされていません。
-
クリップ・アート-Microsoft Clip Artライブラリを使用して、テンプレートにイメージを追加します。
フリー・ハンド描画の追加
フリー・ハンド描画ツールは、最終的なPDFに図面を作成するのに役立ちます。
Microsoft Wordのフリー・ハンド描画ツールを使用して、最終的なPDF出力でレンダリングされる図面をテンプレートに作成します。
WordArtの追加
テンプレートでMicrosoft WordのWordArt機能を使用できます。
次の図は、サンプルのWordArtの例を示しています。
ノート:
一部のMicrosoft WordArtでは、現在SVGに変換できないビットマップ操作が使用されています。 テンプレートでサポートされていないWordArtを使用するには、WordArtのスクリーンショットをイメージ(gif、jpegまたはpng)として保存し、WordArtをイメージに置き換えます。
データ駆動型シェイプの追加
「パブリッシャ」は、テンプレートの静的シェイプおよび機能のサポートに加えて、受信データまたはパラメータに基づいたシェイプの操作もサポートします。
次の操作がサポートされています:
-
レプリケート
-
移動
-
サイズを変更
-
テキストを追加
-
スキュー
-
回転
これらの操作は単一のシェイプに適用されるだけでなく、Microsoft Wordのグループ機能を使用してシェイプを結合し、グループとして操作できます。
シェイプのレプリケート
for-eachループでデータ要素をレプリケートする場合と同じ方法で、受信XMLデータに基づいてシェイプをレプリケートできます。
シェイプをレプリケートするには、for-each@shapeコマンドをシェイプ・オフセット宣言と組み合せて使用します。 たとえば、ページを下にシェイプをレプリケートするには、次の構文を使用します:
<?for-each@shape:SHAPE_GROUP?>
<?shape-offset-y:(position()-1)*100?>
<?end for-each?>
where
for-each@shape
は、シェイプ・コンテキストのfor-eachループを開きます
SHAPE_GROUP
は、XMLファイルの繰返し要素の名前です。 要素SHAPE_GROUP
が出現するたびに、新しいシェイプが作成されます。
shape-offset-y:
は、Y軸に沿ってシェイプをオフセットするコマンドです。
(position()-1)*100)
は、出現ごとのオフセットをピクセル単位で設定します。 XSL positionコマンドは、グループ内のレコード・カウンタ(1,2,3,4)を返します。1つはその番号から減算され、結果は100で乗算されます。 したがって、最初の出現の場合、オフセットは0になります: (1-1) * 100。 2回目の出現のオフセットは100ピクセルです: (2-1) *100。 また、後続の各オカレンスに対して、オフセットはページの下位100ピクセルになります。
テキストをシェイプに追加
テキストは、受信XMLデータまたはパラメータ値のいずれかから動的にシェイプに追加できます。
「プロパティ」ダイアログで、次の構文を入力します:
<?shape-text:SHAPETEXT?>
ここで、SHAPETEXTはXMLデータの要素名です。 実行時に、テキストがシェイプに挿入されます。
パスにテキストを追加
受信XMLデータまたはパラメータから、線または曲線に沿ってテキストを追加できます。
線を描画した後、「プロパティ」ダイアログで次のように入力します:
<?shape-text-along-path:SHAPETEXT?>
ここで、SHAPETEXT
はXMLデータからの要素です。 実行時に、要素SHAPETEXT
の値が行の上および行に沿って挿入されます。
シェイプの移動
XMLデータに基づいて、シェイプを移動したり、X軸とY軸の両方に沿って移動できます。
たとえば、シェイプをY軸に沿って200ピクセル、X軸に沿って300に移動するには、シェイプのプロパティ・ダイアログで次のコマンドを入力します:
<?shape-offset-x:300?>
<?shape-offset-y:200?>
シェイプの回転
受信データに基づいて、指定した軸についてシェイプを回転できます。
次のコマンドを使用します:
<?shape-rotate:ANGLE;'POSITION'?>
where
ANGLEは、シェイプを回転する度数です。 角度が正の場合、回転は時計回りに、負の場合回転は反時計回りになります。
POSITIONは、回転を実行するポイントです(例: 'left/top'
)。 有効な値は、左、右または中央と中央、上または下の組合せです。 デフォルトは左/上です。 次の図は、これらの有効な値を示しています。
この矩形のシェイプを右下隅で回転するには、次の構文を入力します:
<?shape-rotate:60,'right/bottom'?>
また、回転するシェイプ自体にx、y座標を指定することもできます。
シェイプの傾斜
skew
コマンドを使用して、シェイプをスキューできます。
次のコマンドを使用して、X軸またはY軸に沿ってシェイプをスキューできます:
<?shape-skew-x:ANGLE;'POSITION'?>
<?shape-skew-y:ANGLE;'POSITION'?>
where
ANGLEは、シェイプをスキューする度数です。 角度が正の場合、スキューは右側になります。
POSITIONは、回転を実行するポイントです(例: 'left/top'
)。 有効な値は、左、右または中央と中央、上または下の組合せです。 「シェイプの回転」を参照してください。 デフォルトは'left/top'
です。
たとえば、右下隅のシェイプを30度スキューするには、次のように入力します:
<?shape-skew-x:number(.)*30;'right/bottom'?>
シェイプのサイズの変更
単一の軸または両方の軸に沿って適切なコマンドを使用して、シェイプのサイズを変更できます。
両方の軸に沿ってシェイプのサイズを変更するには、次を使用します:
<?shape-size:RATIO?>
ここで、RATIO
は、シェイプのサイズを増減するための数値の比率です。 したがって、値2を指定すると、元の高さと幅の2倍のシェイプが生成されます。 値0.5を指定すると、元のサイズの半分にシェイプが生成されます。
x軸またはy軸に沿ってシェイプのサイズを変更するには、次を使用します:
<?shape-size-x:RATIO?>
<?shape-size-y:RATIO?>
xまたはyの値のみを変更すると、軸に沿ってシェイプを伸縮する効果があります。 これはデータ主導型です。
コマンドの結合
これらのコマンドを組み合わせて、一度に複数の変換をシェイプで実行することもできます。 たとえば、シェイプをレプリケートし、レプリケーションごとに角度で回転し、サイズを同時に変更できます。
次の例では、シェイプを複製し、50ピクセルをページの下に移動し、中心を5度回転し、X軸に沿って伸ばし、シェイプの数をテキストとして追加する方法を示します:
<for-each@shape:SHAPE_GROUP?>
<?shape-text:position()?>
<?shape-offset-y:position()*50?>
<?shape-rotate:5;'center/center'?>
<?shape-size-x:position()+1?>
<end for-each?>
これらのコマンドは、次のシェイプ変換図に示されている出力を生成します:
CD評価の例
この例では、受信XMLファイルのデータに基づいて星評価を生成するテンプレートを設定する方法を示します。
次の受信XMLデータがあるとします:
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
<USER_RATING>4</USER_RATING>
</CD>
<CD>
<TITLE>Hide Your Heart</TITLE>
<ARTIST>Bonnie Tylor</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
<USER_RATING>3</USER_RATING>
</CD>
<CD>
<TITLE>Still got the blues</TITLE>
<ARTIST>Gary More</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Virgin Records</COMPANY>
<PRICE>10.20</PRICE>
<YEAR>1990</YEAR>
<USER_RATING>5</USER_RATING>
</CD>
<CD>
<TITLE>This is US</TITLE>
<ARTIST>Gary Lee</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>Virgin Records</COMPANY>
<PRICE>12.20</PRICE>
<YEAR>1990</YEAR>
<USER_RATING>2</USER_RATING>
</CD>
<CATALOG>
各CD
のUSER_RATING
要素に注意してください。 このデータ要素とシェイプ操作コマンドを使用すると、評価を視覚的に表現して、読者が一目で比較できるようにすることができます。 これを実現するためのテンプレートは、次の評点図を視覚的に表したものです:
フィールドの値は、フィールド表の次の値に表示されます:
フィールド | フォーム・フィールド・エントリ |
---|---|
F |
|
TITLE |
|
ARTIST |
|
E |
|
(星形) |
Webタブ・エントリ:
|
フォーム・フィールドには、単純な要素値が保持されます。 このテンプレートとの唯一の違いは、星形の値です。 レプリケーション・コマンドは、「書式AutoShape」ダイアログの「ウェブ」タブに配置されます。
for-each@shapeコマンドでは、コマンドを使用して" for...next loop"構造を作成できます。 開始番号として1、最終番号としてUSER_RATING、ステップ値として1を指定します。 テンプレートがCDをループすると、USER_RATING値ごとにスター・シェイプを繰り返す内部ループが作成されます(つまり、値4を指定すると4つの星が生成されます)。 このテンプレートおよびXMLサンプルからの出力を次の図に示します:
グループ化されたシェイプの例
この例では、シェイプをグループに結合し、個別にグループとして受信データに反応させる方法を示します。
次のXMLデータがあるとします:
<SALES>
<SALE>
<REGION>Americas</REGION>
<SOFTWARE>1200</SOFTWARE>
<HARDWARE>850</HARDWARE>
<SERVICES>2000</SERVICES>
</SALE>
<SALE>
<REGION>EMEA</REGION>
<SOFTWARE>1000</SOFTWARE>
<HARDWARE>800</HARDWARE>
<SERVICES>1100</SERVICES>
</SALE>
<SALE>
<REGION>APAC</REGION>
<SOFTWARE>900</SOFTWARE>
<HARDWARE>1200</HARDWARE>
<SERVICES>1500</SERVICES>
</SALE>
</SALES>
このデータを視覚的に表現できるため、ユーザーはすべてのリージョンの販売データをすぐに理解できます。 これを行うには、最初に操作するMicrosoft Wordでコンポジット・シェイプを作成します。 次の図は、4つのコンポーネントで構成されるコンポジット・シェイプを示しています:
シェイプは3つのシリンダで構成されています: 赤、黄、青。 これらは、ソフトウェア、ハードウェア、およびサービスというデータ要素を表します。 結合オブジェクトには、受信データからテキストを受信できる矩形も含まれています。
次のコマンドが「ウェブ」タブに入力されます:
赤の円柱:<?shape-size-y:SOFTWARE div 1000;'left/bottom'?>
黄色の円柱:<?shape-size-y:HARDWARE div 1000;'left/bottom'?>
青い円柱:<?shape-size-y:SERVICES div 1000;'left/bottom'?>
shape-sizeコマンドは、要素SOFTWARE、HARDWAREおよびSERVICESの値に基づいてシリンダを伸縮させるために使用します。 値を1000で割って、伸縮係数を設定します。 たとえば、値が2000の場合、これを1000で割って係数2を取得します。 シェイプは現在の高さの2倍を生成します。
テキスト対応の矩形には、「ウェブ」タブに次のコマンドが含まれています:
<?shape-text:REGION?>
実行時に、REGION要素の値が矩形に表示されます。
これらのすべてのシェイプがグループ化され、グループ化されたオブジェクトの「ウェブ」タブに次の構文が追加されました:
<?for-each@shape:SALE?>
<?shape-offset-x:(position()-1)*110?>
<?end for-each?>
この一連のコマンドでは、for-each@shape
はSALEグループをループします。 shape-offset
コマンドは、ループ内の次のシェイプを特定のピクセル数だけ右に移動します。 式(position()-1)
は、オブジェクトの位置を設定します。 position()関数は、ループ中にレコード・カウンタを返すため、最初のシェイプの場合、オフセットは1-1*110または0になります。これは、オブジェクトの最初のレンダリングをテンプレートで定義された位置に配置します。 後続のオカレンスは、X軸に沿って110ピクセル・オフセット(右側)でレンダリングされます。
実行時には、次の図に示すように、3セットのシェイプがページにレンダリングされます:
さらに視覚的に代表的なレポートを作成するために、これらのシェイプをワールド・マップに重ねることができます。 Microsoft Wordの順序ダイアログを使用して、マップをグループ化されたシェイプの背後にレイヤー化します。
-
Microsoft Word 2000ユーザー:バックグラウンド・マップを追加してシェイプ・グループをオーバーレイした後は、グループ化ダイアログを使用してコンポジション全体を1つのグループにします。
-
Microsoft Word 2002/3ユーザー:これらのバージョンのWordには、「ツール」>「オプション」の下のオプションがあり、「一般」タブから「自動シェイプの挿入時に描画キャンバスを自動的に生成」までのオプションがあります。 このオプションを使用すると、マップとシェイプの最終的なグループ化を行う必要がなくなります。 次の図に示すように、レポートに対して視覚的に魅力的な出力を生成できるようになりました: