描画、図形およびクリップ・アートの追加

Publisherでは、Microsoft Wordの描画、図形およびクリップアートの機能がサポートされています。これらのオブジェクトをテンプレートに追加し、最終的なPDF出力またはHTML出力にレンダリングできます(これ以外の出力タイプはサポートされていません)。

次のオートシェイプ・カテゴリがサポートされています。

  • 線: 直線、矢印、双方向矢印、曲線、フリー・フォーム、フリーハンドがあります。

  • 双方向矢印: 直線の双方向矢印のみサポートされています。曲線の双方向矢印を作成するには、曲線を使用し、この曲線の終端スタイルを指定します。

  • 基本図形: すべての図形がサポートされています。

  • ブロック矢印: すべての矢印がサポートされています。

  • フローチャート: すべてのフローチャート・オブジェクトがサポートされています。

  • 星とリボン: すべてのオブジェクトがサポートされています。

  • 吹き出し: 線の吹き出しはサポートされていません。

  • クリップアート: Microsoft Clip Artライブラリを使用してイメージをテンプレートに追加します。

フリーハンド描画の追加

フリーハンド描画ツールは、最終的なPDFへの描画の作成に役立ちます。

Microsoft Wordのフリーハンド描画ツールを使用して、テンプレートで最終的なPDF出力にレンダリングする図を作成します。

ハイパーリンクの追加

この項では、図形にハイパーリンクを追加する方法について説明します。

ハイパーリンクの挿入を参照してください。

図形の重ね合せ

図形を相互に重ね合せ、Microsoft Wordの透過性設定を使用して、下位レイヤー上の図形を透かしで表示できます。

次の図に、重ね合せた図形の例を示します。

3D効果の使用

Publisherでは、図形の3Dオプションはサポートされていません。

Microsoft数式の追加

数式エディタを使用して、出力に数式を生成します。

次の図に、数式の例を示します。

組織図の追加

テンプレートで組織図機能を使用すると、組織図が出力にレンダリングされます。

次の図は、組織図の例を示しています。

ワードアートの追加

Microsoft Wordのワードアート機能をテンプレートで使用できます。

次の図に、ワードアートのサンプルの例を示します。

ノート:

Microsoftのワードアートの中には、現在ではSVGに変換できないビットマップ操作を使用しているものがあります。サポートされていないワードアートをテンプレートで使用するには、WordArtのスクリーンショットを取得してイメージ(gif、jpegまたはpng)として保存し、そのイメージでワードアートを置き換えることができます。

データドリブン図形の追加

Publisherでは、テンプレートでの静的図形および機能のサポートだけでなく、受信データまたはパラメータに基づく図形の操作もサポートされています。

次の操作がサポートされています。

  • 複製

  • 移動

  • サイズ変更

  • テキストの追加

  • 傾斜

  • 回転

これらの操作は1つの図形に適用されるだけでなく、Microsoft Wordのグループ機能を使用して、図形をまとめて結合し、グループとして操作できます。

操作コマンドの組込み

次の図に示すように、図形のプロパティ・ダイアログの「Web」タブで、図形の操作コマンドを入力します。

図形の複製

for-eachループでデータ要素を複製するのと同じ方法で、受信XMLデータに基づいて図形を複製できます。

図形を複製するには、for-each@shapeコマンドをshape-offset宣言と組み合せて使用します。たとえば、図形をページの下方へ複製するには、次の構文を使用します。

<?for-each@shape:SHAPE_GROUP?>
 <?shape-offset-y:(position()-1)*100?>
<?end for-each?>

説明

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が掛け合されます。したがって、最初の出現では(1-1) * 100であるため、オフセットが0になります。2つ目の出現のオフセットでは(2-1) *100であるため、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'?>

説明

ANGLEは、図形を回転する度合いの数値です。角度が正の数である場合、回転は右回りです。負の数の場合は、回転は左回りです。

POSITIONは、回転を実行する際の軸となるポイントであり、left/topなどとなります。有効な値は、left、rightまたはcenterと、center、topまたはbottomの組合せです。デフォルトはleft/topです。次の図に、これらの有効な値を示します。

右下角を中心として矩形を回転するには、次の構文を入力します。

<?shape-rotate:60,'right/bottom'?>

図形自体の内部における、回転軸となるXおよびY座標を指定することもできます。

図形の傾斜

skewコマンドを使用して、図形を傾斜させることができます。

次のコマンドを使用して、XまたはY軸方向に図形を傾斜させることができます。

<?shape-skew-x:ANGLE;'POSITION'?>
<?shape-skew-y:ANGLE;'POSITION'?>

説明

ANGLEは、図形を傾斜させる度合いの数値です。角度が正の数である場合、傾斜は右方向です。

POSITIONは、回転を実行する際の軸となるポイントであり、left/topなどとなります。有効な値は、left、rightまたはcenterと、center、topまたはbottomの組合せです。図形の回転を参照してください。デフォルトは'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>

それぞれのCDUSER_RATING要素に注目してください。このデータ要素および図形操作コマンドを使用して、読者が一目で評価を比較できるような視覚的な表示の評価図を作成できます。このために使用するテンプレートを、次の評価の視覚的表示の図に示します。

次のフィールドの値の表に、フィールドの値を示します。

フィールド フォーム・フィールド入力

F

<?for-each:CD?>

TITLE

<?TITLE?>

ARTIST

<?ARTIST?>

E

<?end for-each?>

(星型)

「Web」タブに入力:

<?for-each@shape:xdoxslt:foreach_number($_XDOCTX,1,USER_RATING,1)?>

<?shape-offset-x:(position()-1)*25?>

<?end for-each?>

フォーム・フィールドには、単一要素の値が保持されます。このテンプレートでの唯一の相違点は、星型の値です。複製コマンドは、「オートシェイプの書式設定」ダイアログの「Web」タブにあります。

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つの円柱で構成されています。これらは、ソフトウェア、ハードウェアおよびサービスのデータ要素を表します。結合オブジェクトには、受信データからテキストを受け取るために有効化された矩形も含まれます。

次のコマンドが「Web」タブに入力されています。

赤い円柱: <?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倍の高さで生成されます。

テキスト対応の矩形については、「Web」タブに次のコマンドが含まれます。

<?shape-text:REGION?>

実行時に、REGION要素の値が矩形に表示されます。

これらのすべての図形がグループ化され、グループ・オブジェクトの「Web」タブに次の構文が追加されます。

<?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には、「ツール」->「オプション」->「全般」タブに「オートシェイプの挿入時、自動的に新しい描画キャンバスを作成する」オプションがあります。このオプションを使用すると、地図と図形を最終的にグループ化する必要がありません。これで、次の図に示すように、視覚的に訴えかける出力をレポート用に生成できます。