- - PR -
XSL-FOで作成される帳票ファイルの改行文字の改行方法
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-10-04 09:57
おはようございます。
ue様ご回答ありがとうございます。 おかげさまで無事に帳票の出力を執り行うことができました。 感謝の限りでございます。 ここでue様のような熟練者の方に教えを請うのは近道で良いのですが、 私自身も成長したく思います。 そこで、XMLやXSLを学ぶ上で何か良いページや、参考図書がありましたら 教えていただけないでしょうか? よろしくお願いします。 追記: 今回のまとめです。皆様のお役に立てると幸いです。 <!-- XSLソース開始 --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <!-- 改行を行うためのテンプレートとして InsertLineBreak を定義 --> <xsl:template name="InsertLineBreak"> <xsl:param name="value" select="あ"/> <xsl:choose> <xsl:when test="contains($value,'&#10;')"> <!-- アンドは半角で読み替えて下さい --> <xsl:value-of select="substring-before($value,'&#10;')"/> <fo:block white-space-collapse="false"> </fo:block> <xsl:call-template name="InsertLineBreak"> <xsl:with-param name="value" select="substring-after($value,'&#10;')"/> </xsl:call-template> </xsl:when> </xsl:choose> </xsl:template> <!-- InsertLineBreak の定義終了 --> <!-- InsertLineBreak を実際に適用する箇所 --> <fo:block hyphenate="true"> <!-- hyphenate は日本語環境下で、半角文字をセル幅以内で改行するときに使います。 --> <xsl:for-each select="XXXXXX"> <!-- XXXXXXは項目名です。 --> <fo:inline font-size="10.0pt" font-family="MS 明朝" font-weight="bold"> <xsl:call-template name="InsertLineBreak"> <xsl:with-param name="value" select="concat(text(),'&#10;'"> <!-- アンドは半角で読み替えて下さい --> <xsl:apply-templates /> </xsl:with-param> </xsl:call-template> </fo:inline> </xsl:for-each> </fo:block> <!-- InsertLineBreak の適用おわり --> <!-- XSLソース終了 --> |