试图在 XSL-FO 中插入空白页
Posted
技术标签:
【中文标题】试图在 XSL-FO 中插入空白页【英文标题】:trying to insert a blank page in XSL-FO 【发布时间】:2015-01-29 10:33:56 【问题描述】:我正在尝试插入一个空白页作为某些章节的最后一页。例如,我想要封面页之后的空白页。我是这样做的:
<fo:page-sequence-master master-name="cover_pagemaster" force-page-count="even">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="cover" page-position="any" />
<fo:conditional-page-master-reference master-reference="empty_page" page-position="last" blank-or-not-blank="blank" />
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
应该是两页,一页有封面,一页空白。为什么它不这样工作?
感谢您的帮助!
编辑:
<fo:page-sequence-master master-name="cover_pagemaster" force-page-count="even">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference master-reference="empty_page" page-position="last" blank-or-not-blank="blank" />
<fo:conditional-page-master-reference master-reference="cover" page-position="first" />
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
嗯,我现在尝试了不同的组合,但它仍然不起作用。甚至 force-page-count 都不起作用(我正在使用 Antenna House 的评估版)。
我只是找不到 xsl-fo 代码的工作示例,该代码生成一个空白页作为双页页面主文件的第二页。
第二次编辑:
<fo:simple-page-master master-name="cover" page- page->
<fo:region-body />
</fo:simple-page-master>
<fo:simple-page-master master-name="empty_page">
<fo:region-body />
</fo:simple-page-master>
然后在页面序列中:
<fo:page-sequence master-reference="cover_pagemaster">
<fo:flow flow-name="xsl-region-body">
<fo:block-container absolute-position="absolute" top="70mm" left="30mm">
<fo:block>
<fo:external-graphic src="coverpage.png" content- content- />
</fo:block>
</fo:block-container>
<fo:block-container text-align="right" hyphenate="true" absolute-position="absolute" font-family="Calibri" font-size="4em" top="200mm" left="42mm" margin-right="10mm">
<fo:block>COVERPAGE</fo:block>
<fo:block>TEST</fo:block>
<fo:block>ABSOLUTE POSITIONING
</fo:block>
</fo:block-container>
</fo:flow>
</fo:page-sequence
【问题讨论】:
在 force-page-count 属性中,您必须使用“end-on-even”而不是“even”。 【参考方案1】:repeatable-page-master-alternatives 列表按顺序处理。所以当格式化程序处理一个章节的最后一页时,它会遍历列表,它会看到第一个条目的条件(page-position="any")对这一页有效。所以最后一页被分配“封面”而不检查完整的替代列表。 因此,您应该构建可重复页面主替代列表,以便在更常见的页面(左、右、任何)之前列出例外(第一页、最后一页)。
编辑:
现在它们的顺序正确。但是您指定了blank-or-not-blank="blank"
。这意味着“仅当页面为空白(即不包含正文)时才使用此母版页”。
第二页目前是什么样子的?使用哪个母版页?
编辑 2: 在 force-page-count 属性中,您必须使用“end-on-even”而不是“even”。
【讨论】:
我的意思是输出中发生了什么?封面之后的页面是否属于cover_pagemaster页面序列,如果是,它选择哪个母版页替代? 它现在工作了!非常感谢!除了我没有使用 end-on-even 的事实之外,我不明白“偶数”和“奇数”在整个文档中的位置。我认为,对于每个页面序列主控,计数都是从新开始的。以上是关于试图在 XSL-FO 中插入空白页的主要内容,如果未能解决你的问题,请参考以下文章