Translation:Page Item
From IDMLWiki
Contents |
ページオブジェクト
ページ座標にページオブジェクトを追加する
デフォルトでは、ページオブジェクトはスプレッド座標にあります。座標原点はノド中央にあります。ページ座標で扱う方が容易なときは、IDMLでページオブジェクトのItemTransform行列を調整します。考えかたとしては、座標原点をスプレッドの中央からページの左上端に移動するということです。手順は次のとおりです。
- ゼロ基点のページ綴じかたを決める。(上述)
- ゼロ基点のページインデックスを決める。
- ページ幅を決める。
- ページ高さを決める。
- x(水平)方向の移動距離を計算する。 xTranslation = (pageIndex - pageBinding) * pageWidth
- y(垂直)方向の移動距離を計算する。 yTranslation = pageHeight /2
- yTranslationを追加する。
例えば、下記のTextFrameは左ページにあります。従って水平方向に-612pt、垂直方向に-396pt移動されます。座標原点はノド中央から左に612pt、上に396pt移動されます。
<TextFrame ... ItemTransform="1 0 0 1 -612 -396">...
<PathPointArray><PathPointType Anchor="36 36" LeftDirection="36 36" RightDirection="36 36"/>...
このパターンは、Page Builderのspread.xslファイル(pagebuilder/xsl/Spreads/spread.xsl)など、たくさんのサンプルで使われています。
線、パスまたはシェイプの追加
パスとシェイプを表すエレメントは多数あります。GraphicLineエレメントは直線を、Ovalエレメントは楕円形を、Rectangleエレメントは長方形を表します。不規則なパスとシェイプはPolygonエレメントで表されます。これらのタイプにはパスポイントの配列が含まれ、オープンにしたりクローズにしたりすることができます。
画像の追加
画像はシェイプのエレメントかPolygonエレメントの子エレメントです。シェイプまたはポリゴンのType属性値は「GraphicType」で、Imageエレメントが最後の子エレメントとして追加されます。このエレメントにはたくさんの属性と子エレメントが含まれていますが、最も重要なことはLinkエレメントが子エレメントとして含まれ、配置画像の実データへのアクセスが記述されています。
いくつかのサンプルに、配置画像の例があります。Page Builderではドキュメントをゼロから作成して、そこにJPEG画像を追加します。Add Catalog Pagesではスプレッドに複数の画像を追加します。Replace Imagesでは、画像のLinkエレメントの抽出と変更を行います。
フレームに合わせた画像の調整
IDMLでは、フレームに合わせた画像の調整を行いません。ページオブジェクトのFrameFittingOptionエレメントでコントロールされる、フレーム調整機能があります。これはIDML読み込み時に自動的にフィットする機能ではありません。UI上で画像が配置されたときの振る舞いをコントロールします。
サンプルには画像をフレームに合わせるテクニックのデモがあります。手順は、
- 長方形の境界を画像の形状に合わせる。長方形のサイズは任意だが、画像と同じ形状にする。
- 画像のエレメントのItemTransform属性を「1 0 0 1 0 0」(恒等行列)にする。
- 画像の境界がフレームに合う。
テキストフレームの追加
テキストフレームは、不規則な形でも長方形でも、常にTextFrameエレメントで表されます。ParentStory属性はテキストがどのストーリーに属しているかと、リンクされたテキストフレームのPreviousTextFrameとNextTextFrameの情報です。
<TextFrame Self="ue1" ParentStory="ue3" PreviousTextFrame="ua1" NextTextFrame="uf1"
テキストフレームを追加する手順は次のとおりです。
- Storiesディレクトリに、ストーリーのXMLファイルを追加する。ミニマルなストーリーの例は、「IDMLファイルにあるもの」を参照のこと。このストーリーには、Self属性にユニークなIDが必須。
- 「<idPkg:Story src="Stories/MyStory.xml"/>」のように、idPkg:Storyエレメントをdesignmap.xmlファイルに追加する。
- テキストフレームを追加したいスプレッドファイルに、TextFrameエレメントを追加する。このエレメントのParentStory属性で、新しいストーリーのSelf属性を参照する。図形の設定が、ここでは最も難しい。「Hello World」の例を参照のこと。
- PreviousTextFrame属性とNextTextFrame属性を使って、既存のフレームとのリンクを設定する。リンク前後のフレームの、関係する属性を変更する。
テキストフレーム内で表示するテキストは、関連付けられたストーリーXMLファイルにあります。
オブジェクトスタイルの適用
オブジェクトスタイルは、ページオブジェクトのエレメントのAppliedObjectStyle属性を、目的のオブジェクトスタイルのSelf属性値に設定して、適用します。
<TextFrame ... AppliedObjectStyle="ObjectStyle/Object Style 1"
