- PR -

XSL-FOでテーブルの行間に区切り線を入れるには?

1
投稿者投稿内容
fuzuki
常連さん
会議室デビュー日: 2003/08/23
投稿数: 48
投稿日時: 2004-09-26 17:49
こんにちは。

XSL-FOを使用してXMLからPDFを出力するXSLを記述しています。その中の処理でテーブルの中のそれぞれの行の間にHTMLで言うhrのような感じで区切り線を入れたいのですが、良い方法が見つからず困っています。

具体的には

コード:

<fo:table-body>
<xsl:apply-templates select="tmp" />
</fo:table-body>



のようにしてtemplateの中で

コード:

<xsl:template match="tmp">
<fo:table-row>
<fo:table-cell>
<fo:block>
<xsl:value-of select="test" />
</fo:block>
</fo:table-cell>
</fo:table-row>
</xsl:template>



のようにしてそれぞれの行を出力しています。

apply-templatesタグを開始タグと終了タグに分けてその間に線を入れる試みをしてみましたがやはりエラーでPDF自体が生成されず。かと言って、templateタグの中で処理しようとすると行ではなくて列として追加されてしまいます(当然ですが)。

区切り線自体はHTMLのhrのようなものがXSL-FOでは見当たらないので、中身の無い行1列1のテーブルを使おうと思っています。この方法でヘッダに線を出力することはできたので、どこかしら適当なところに同じようなテーブルを埋め込めればいいのですが。
あと、この線は色指定をしなければならないので、黒だけの線しか出ないような方法は避けたいと思います。

どなたかご存知の方いらっしゃいましたらよろしくお願いいたします。


[ メッセージ編集済み 編集者: fuzuki 編集日時 2004-09-26 17:50 ]
fuzuki
常連さん
会議室デビュー日: 2003/08/23
投稿数: 48
投稿日時: 2004-09-26 20:55
すみません。なんとか解決しました。

<xsl:apply-templates select="tmp" />
の前後にあった
<fo:table-body>タグをテンプレートの中に入れてしまい、テンプレートの中で一番最後の箇所で区切り線を入れることで期待した通りのものができました。
1

スキルアップ/キャリアアップ(JOB@IT)