【问题标题】:How to break up the content of <fo:table-block> present inside <fo:table-cell>如何分解存在于 <fo:table-cell> 中的 <fo:table-block> 的内容
【发布时间】:2014-03-20 16:22:49
【问题描述】:

我有一个要求,&lt;fo:table-cell&gt; 下的 &lt;fo:table-block&gt; 中有一个人的名字,如果名字的长度超过了间隔的长度,那么这应该是两行或更多行的刹车。该名称来自一个表单,因此它的长度可以变化,例如我可以有一个长度最大为 30 个字符的名称。

任何想法如何实现这一目标?

我的 xml 是:

<sign><sign1 naam='R.M.L.H.V.U. van RammanohatLohiaji' 
date='20 march 2014'></Sign>
<Sign1 naam='A.S.D.F.G.H. van RammanohatLohiaji' 
date='20 maart 2014'></sign>

我的 xslt 是:

        <fo:table table-layout="fixed" width="100%">
            <fo:table-column column-width="60mm" />
            <fo:table-column column-width="60mm" />
            <fo:table-column column-width="60mm" />

            <fo:table-body>
                <fo:table-row>
                    <xsl:for-each select="sign">
                        <fo:table-cell width="90mm">
                            <fo:block font-size="12pt" font-weight="bold">
                                Signature                               </fo:block>
                            <fo:block space-after="1cm" font-size="11pt" font-weight="bold">
                                <xsl:value-of select="@sign1" />
                            </fo:block>
                            <fo:block space-after="1cm" >
                                Date <xsl:value-of select="@date" />
                            </fo:block>

                            <!-- <fo:list-block space-after="1cm">
                                <xsl:call-template name="labelvalue">
                                    <xsl:with-param name="label">

                                    </xsl:with-param>
                                    <xsl:with-param name="value" select="@date" />
                                </xsl:call-template>
                            </fo:list-block> -->
                            <fo:block >
                            Signature <fo:leader leader-pattern="rule" leader-length="3.2cm" />
                            </fo:block>
                        </fo:table-cell>
                    </xsl:for-each>
                </fo:table-row>
            </fo:table-body>
        </fo:table>
    </fo:block-container>
</xsl:template>

【问题讨论】:

  • 很不清楚你在问什么。请包括您的 XML 输入、您的 XSLT 样式表和您期望的 XSL-FO 输出与您实际得到的输出。
  • 我想把 sign1 分成两行。

标签: java spring xslt xsl-fo


【解决方案1】:

你的问题不是很清楚,所以我不得不做出一个疯狂的猜测。一般来说,您可以通过以下方式“分解内容”:

  • 拥有多个fo:block。每个块都在新行上呈现,因为它表示一个新段落。
  • 主动插入换行符(或linefeeds

例如:

<fo:block>Text content before line feed&#10;Text content after it</fo:block>

确保这些字符确实被保留了,这有块属性(white-space-treatmentlinefeed-treatment 和其他)。

【讨论】:

  • @Muller :您可以在我的问题中看到我的 xml,现在建议我可以将 sign1 内容连字。我试过 hyphenate=true 但不幸的是这不起作用。
猜你喜欢
  • 2019-01-18
  • 1970-01-01
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 2019-05-21
  • 2016-04-26
相关资源
最近更新 更多