FOP中的region-before和region-body之间的相对空间xslt

时间:2016-07-21 08:28:40

标签: xslt xslt-2.0 xsl-fo apache-fop

我正试图在区域之前和区域之间获得10mm的空间。 但是我无法将它与regin-before的大小相提并论。

Thats how it should be.

这应该是边界。它采用单排“Bemerkung”。但是一旦它被双排或三排,身体就不会被打破,而是保持在同一位置,如下所示:

enter image description here

我的layout-master-set看起来像这样:

<fo:layout-master-set>
    <fo:simple-page-master master-name="Stueckliste"
        margin="{$Innenraender}" page-height="{$SeitenhoeheA4}" page-width="{$SeitenbreiteA4}">
        <fo:region-body region-name="xsl-region-body"
            margin="45mm 0mm 17mm 0mm" />
        <fo:region-before extent="80mm" display-align="before"
            region-name="xsl-region-before" />
        <fo:region-after region-name="xsl-region-after"
            extent="50mm" display-align="after" margin="30mm 0mm 40mm 0mm" />
    </fo:simple-page-master>
</fo:layout-master-set>

该区域 - 在周围之前:

<fo:static-content flow-name="xsl-region-before">
  ...
</fo:static-content>

地区 - 身体周围:

<fo:flow flow-name="xsl-region-body">
   ...
</fo:flow>

错误在哪里?

1 个答案:

答案 0 :(得分:2)

没有错误。在XSL FO中,区域的高度是固定的。它不会根据超过(或小于)范围&#34;的内容扩展(或收缩)。如果你需要在后续页面上重复标题区域,那么你需要做一些事情(比如你建议计算字符)来确定一些预测的高度,并在XSL中设置产生XSL FO的高度。或者您可以设置一组具有各种&#34;范围&#34; s的页面模板,并根据字符数从中选择。

如果不在后续页面上重复标题(例如它是第一页,或者您只有一页),那么您可以将部分或全部内容移动到正文中并且没有标题。