XSL FO:基于XML内容的条件布局

时间:2017-04-26 23:44:23

标签: xml xsl-fo

我正在使用xsl-fo和antennahouse创建一个pdf,我已经为我的文档的第一页定义了布局,使用基于fo:simple-page-masterfo:repeatable-page-master-alternative标签的奇数和偶数页面与此类似的xml结构:

<test>
 <form title="Form A">
  <section title="First Section">
   <item> ... item 1 contents ... </item>
   <item> ... item 2 contents ... </item>
   <item> ... item 3 contents ... </item>
  </section>
  <section title="2nd Section">
   <item> ... item 1 contents ... </item>
   <item> ... item 2 contents ... </item>
   <item> ... item 3 contents ... </item>
  </section>
 </form>
 <form title="Form B">
 </form>
</test>

项目的内容和项目集合本身可能非常大,因此它可以跨越多个页面。任何时候一个部分开始插入分页符。

第一页面布局有一个标题,显示表单的标题+第一部分的标题位于页面顶部的中心。其他两个布局的标题具有相同的信息但左对齐而不是居中。

问题是,是否可以在每个新部分开始时重复使用第一页布局?也就是说,对于我的文档中的每个部分,我希望标题居中,而其余页面仍然应该有一个左对齐文本的标题。

提前致谢...

2 个答案:

答案 0 :(得分:0)

将每个部分放在单独的fo:page-sequence

听起来您在每个部分都使用相同的表单标题,因此表单标题不应该成为问题。否则,您必须使用第一个fo:page-sequence执行不同的操作才能显示表单标题。

答案 1 :(得分:0)

对我来说,重复&#34;并不完全清楚你的意思。

我不知道有什么方法可以将某些内容放入xsl-fo中并多次使用它,但使用xslt的优点是很容易生成xsl-fo&#34;代码段& #34;通过相同的xslt模板在不同fo:static-content s中的单独fo:page-sequence元素中多次(因此您只需更改一个位置)。