XSL-FO:Region-Body中的静态内容和流内容:可能吗?

时间:2010-03-11 17:09:24

标签: static xsl-fo

我有以下问题:

我需要使用XSLFO生成一个2列的多页文档。问题是:我需要在2列之间有一条垂直线。由于XSLFO似乎没有指定创建这样一个分隔符的选项,我需要手动将它放在那里。

我正在考虑使用静态旋转的blockcontainer和它的领导者。 但是,看起来不可能在与流内容来源相同的区域上使用静态内容。

 <fo:layout-master-set>
    <fo:simple-page-master 
      page-width="170mm"
      page-height="222mm"          
      master-name="page"
      >
      <fo:region-body region-name="xsl-region-body"
                      margin-top="2mm"
                      margin-bottom="2mm"
                      margin-left="10mm"
                      margin-right="10mm"
                      column-count="2"
                      column-gap="5mm"
                      />
    </fo:simple-page-master>
  </fo:layout-master-set>
 <fo:page-sequence master-reference="page">
    <fo:static-content flow-name="xsl-region-body" ><!-- This gives a error -->
      <fo:block>test</fo:block>
    </fo:static-content>
    <fo:flow flow-name="xsl-region-body">
      <xsl:apply-templates/>
    </fo:flow>
  </fo:page-sequence>

(XEP)中的结果:

 [error] Duplicate identifier: flow-name="xsl-region-body". 
 Property 'flow-name' should be unique within 'fo:page-sequence'.

当流内容放在那里时,是否有任何方法可以在主区域放置静态内容? 或者:有没有办法定义分割2列布局的分隔符?

1 个答案:

答案 0 :(得分:2)

我终于得到了以下解决方案:

使用<FO:Region-Before "extend=100%">

看起来您可以通过这种方式轻松重叠内容。所以,它有点像黑客,但是通过一个块容器的绝对定位,或者只是一个相对定位的块,它可以完成这项工作。