Show page source of blancoPdfDef #52702

= blancoPdf 定義

== 定義構成
blancoPdf 定義には、PDF 帳票の定義をおこないます。

blancoPdf 定義の基本的な構成は以下のとおりです。
{{{
conf
  pdf
    font
    page
    template
}}}

=== 構成詳細
 * font: 帳票で利用するフォント登録。通常は変更する必要はありません。
 * page: PDF ページ定義。
 * template: 帳票のテンプレート PDF。この PDF が、PDF 帳票のテンプレートとなります。

== PDF ページ定義
{{{
blancoPdfPageDef

  form

  itemList
  …(繰り返す)…

  blockList
    itemList
    itemList
    …(繰り返す)…
}}}

=== 具体的な記述例
 * http://svn.sourceforge.jp/svnroot/blancofw/blancoPdf/trunk/conf/pdf/page/yoko01.pdfpagedef

=== ページ定義詳細
==== blancoPdfPageDef
!BlancoPdfPageDef の記述をおこないます。
 * [http://svn.sourceforge.jp/svnroot/blancofw/blancoPdf/trunk/meta/program/BlancoPdfPageDef.xls BlancoPdfPageDef]
特に重要な指定は template です。

==== form
form には固定で印字する線やテキストを記述します。なお PDF テンプレートを利用する場合には、こちらの記述は不要となることが多いです。

==== itemList
itemList には !BlancoPdfItemDef を記述します。
 * [http://svn.sourceforge.jp/svnroot/blancofw/blancoPdf/trunk/meta/program/BlancoPdfItemDef.xls BlancoPdfItemDef]

==== blockList
blockList には繰り返しのブロック記述をおこないます。行が繰り返す場合などに、こちらの定義を利用します。
blockList には !BlancoPdfBlockDef を記述します。
 * [http://svn.sourceforge.jp/svnroot/blancofw/blancoPdf/trunk/meta/program/BlancoPdfBlockDef.xls BlancoPdfBlockDef]
ブロック記述のなかの itemList は、ブロック記述の原点(0,0)からの相対座標を指定します。こちらが繰り返されます。

== PDF テンプレート
横向き用紙の PDF テンプレートについては、JUST PDF を経由して出力(作成)することを推奨します。
(他のツールでは未検証なだけです。ある PDF 書き出しツールでは、横向き用紙が 2 度回転して、なにやら不思議な状態に…)

== 座標系
 * PDF 論理単位による座標指定となります。1 インチは 72 PDF 論理単位です。
 * 左上を原点(0,0)にしています。(オリジナルの PDF 論理座標は左下が原点)

== 行ブレーク
===
  ・伝票合計行やタイトル行といったものには、layer を指定する。
  ・キーブレークの前に出力するのもには、keyBreakBeforeList を、後には keyBreakAfterList を指定。
    ここで利用する layer を指定する。

  キー側の記述は以下のとおり。
		<itemList>
			<name>block01</name>
			<key>true</key>
			<layer>1</layer>
			<keyLevel>1</keyLevel>
			<keyBreakBeforeList>
			<dupLayerTarget>1</dupLayerTarget>
			</keyBreakBeforeList>
			<keyBreakAfterList>
			<dupLayerTarget>2</dupLayerTarget>
			</keyBreakAfterList>


== blancoPdf 定義のビジュアル編集
blancoPdf 定義のビジュアル編集をおこなう Eclipse プラグインが必要です。
、、、どなたか、ビジュアル編集ツールを Eclipse プラグインで開発されたい方を求む(!)
# blancoPdf の仕様が安定することが先に必要となりますが…