XSL-FO:需要在页面序列级别禁用分页符

时间:2013-01-22 13:33:23

标签: xslt xsl-fo

我的要求是生成一个页面内的页面。 xsl定义的页面大小为A4纸张的1/3,但最多3页必须在纸张上打印。该页面是一个标准的页眉/正文/页脚,上面有一个“Page X of Y”,当然它很简单。但如果这些“页面”中有4个,则只打印2页,第一页为3页,第二页为1页。但是打印了4页,因为输出PDF“告诉”打印机是完整的纸张。所以我想做的是:

  • 对fo进行编码,使其在完成页面后不会分页(类似于page-break-after="avoid",但在页面序列级别) OR

  • 在页面序列中生成页面序列,外部序列定义为A4大小,内部1/3。

我已经以一种简单的方式直接尝试了第二种方法,即

<fo:page-sequence master-reference="A4">
  <fo:page-sequence master-reference="one-third_A4">
    ...  
  </fo:page-sequence>
</fo:page-sequence>

..并且处理器肯定不喜欢它。

我可以申请哪些指令可以执行其中任何一项操作?我查看了schemacentral和w3schools.com这样的地方,找不到任何东西。

1 个答案:

答案 0 :(得分:0)

不确定我是否了解您的需求(图纸会有所帮助),但是您不能简单地将您的内容放入一系列具有指定高度的fo:block-container元素中吗?它们会垂直堆叠。

如果您需要更复杂的几何体,请查看XSL 1.1的flow-maps功能。每页三个正文区域在<fo:flow-target-list>中按顺序连接,一个fo:flow为其提供内容。

根据spec(页码的含义是什么?),fo:page-sequence在另一个fo:page-sequence内无效,并且每个fo:page-sequence都会启动一个新的实体页面按照定义。

fo:page-sequence-wrapper也无法帮助您处理子页面级别。