【发布时间】:2016-02-25 12:59:42
【问题描述】:
fo:inline-container 元素的 XSL-FO 溢出处理
我的问题是:如果 iherit 内容,如何将 fo:inline-container 内的内容(例如 fo:block 元素)破坏到新页面对当前的来说太长了?
使用的格式化程序:AHF 6.2、Apache FOP 2.1
- 转换必须适用于两种格式化程序;因此无法使用 fo:float 元素进行简单的解决方案。
这是一个简短的代码摘录:
<xsl:template match="myElement">
<fo:block>
<fo:inline-container inline-progression-dimension="33.333%">
<fo:block>
Marginalia Headline
</fo:block>
</fo:inline-container>
<fo:inline-container inline-progression-dimension="66.666%">
<fo:block>
Imagine this is a very long text ...
</fo:block>
<fo:block>
Imagine this is a very long text ...
</fo:block>
<fo:block>
Imagine this is a very long text ...
</fo:block>
<!-- MANY MORE fo:blocks -->
</fo:inline-container>
</fo:block>
</xsl:template>
问题是,内容溢出了 fo:inline-container,但没有进入新页面。我认为这与 周围的 fo:block 元素有关,该元素将所有内容都保留在一个页面上。
这里的任何建议都会有所帮助。提前谢谢!
【问题讨论】:
-
您使用的是哪种格式化程序?您是否尝试过为此使用侧浮子或
fo:list-block? -
我同时使用 AntennaHouse 格式化程序 6.2 和 Apache FOP。所以对于 Antenna House,fo:float 方法很合适。但对于 FOP,它不会。问题是周围的 fo:block 与 fo:inline-container 元素相结合,将所有内容保存在一个页面上。我宁愿不要将我的内容放在表格中,也不要放在列表块中。
-
AFAIK,FOP 只能做侧浮动,而浮动到顶部、底部、列等,无论如何都不是必需的。
标签: xslt stylesheet xslt-2.0 xsl-fo