【问题标题】:Relative space between region-before and region-body in FOP xsltFOP xslt中区域之前和区域主体之间的相对空间
【发布时间】:2016-07-21 08:28:40
【问题描述】:

我试图在 region-before 和 region-body 之间留出 10 毫米的空间。 但我无法得到它相对于 regin-before 的大小。

边框应该是这样的。使用单线“Bemerkung”它可以工作。但是一旦它变成双线或三线,身体就不会被套下来,而是保持在相同的位置,如下所示:

我的 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>

region-body 周围:

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

错在哪里?

【问题讨论】:

  • 我想这很难——你应该在 region-body 的上边距添加更多的 mm,但是即使 Bemerkung 只有一行,这个空间也会一直存在。但也许专家会介入并解释如何实现它。你如何生成fo文件?有没有一种方法,生成器已经估计标题更大,而正文应该有更大的上边距?
  • 谢谢。我认为必须有一种方法来设置标题和正文之间的空间,无论标题有多大。我通过xml生成它。所以我可以检查 Bemerkung 是否长到需要两三行。因此,我可以设置之前区域的范围。但我真的认为必须有一种更简单的方法来做到这一点......嗯......
  • 我同意,但基于区域的布局模型可能会看到区域相当独立......另一个想法是尝试以某种方式将 Stückliste 标题(和空白分隔)添加到下表并得到它在每个页面上作为表头重复(完全省略了之前的区域),但这可能会对表格内容造成很大的影响。
  • @StefanHegny 好吧,我认为这比找出 Bemerkung 的字符(行)更复杂。我会等到明天再回答。如果没有更好的解决方案,我会计算字符数......
  • 区域的大小是固定的,因此您需要在 XSLT 中计算您认为需要的大小并将其设置在 XSL FO 中,或者执行建议并可能将一些内容移动到region-body (当然,除非它需要在其他页面上重复)。 XSL Fo 不像 Word 中的标题会增长以适应内容,您可以指定大小。

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-10-07
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多