fo:inline中的多行文字

时间:2019-04-24 14:09:55

标签: xml xslt xsl-fo

我在xsl:fo方面苦苦挣扎,无法生成pdf。我正在尝试使用包含2行的内联内联文本元素生成一个Block。

<fo:block>
  <fo:inline>
     <xsl:value-of select="concat('Title:', $title)"/>
  </fo:inline>
  <fo:leader leader-pattern="space"/>
  <fo:inline>
       <fo:block>Info:</fo:block>
       <fo:block><xsl:value-of select="$date"/> </fo:block>
  </fo:inline>
</fo:block>

但是它不起作用。是否可以按模式绘制?

enter image description here

1 个答案:

答案 0 :(得分:0)

您绘制的内容就像一张桌子。

您可以将两个块放入fo:inline-containerhttps://www.w3.org/TR/xsl11/#fo_inline-container)中:

<fo:block>
    <fo:leader leader-pattern="space" leader-length.optimum="50%" />
    <fo:inline>
        title
    </fo:inline>
    <fo:leader leader-pattern="space" leader-length.optimum="50%" />
    <fo:inline-container alignment-baseline="middle">
        <fo:block>Info:</fo:block>
        <fo:block>date</fo:block>
    </fo:inline-container>
</fo:block>

更像表的替代方法:

<fo:block text-align="center">
    <fo:inline-container width="80%">
        <fo:block>title</fo:block>
    </fo:inline-container><fo:inline-container alignment-baseline="middle" width="20%">
        <fo:block>Info:</fo:block>
        <fo:block>date</fo:block>
    </fo:inline-container>
</fo:block>

作为表格:

<fo:table width="100%" text-align="center">
    <fo:table-body>
        <fo:table-row>
            <fo:table-cell width="80%" display-align="center">
                <fo:block>title</fo:block>
            </fo:table-cell>
            <fo:table-cell width="20%">
                <fo:block>Info:</fo:block>
                <fo:block>date</fo:block>
            </fo:table-cell>
        </fo:table-row>
    </fo:table-body>
</fo:table>