【发布时间】: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