【问题标题】:XSL-FO: place text on odd pages only, skip even pagesXSL-FO:仅将文本放在奇数页上,跳过偶数页
【发布时间】:2014-09-29 10:18:52
【问题描述】:

我有一个文档,我想在奇数页上放置文本,并在偶数页上放置附图。 我的页面定义如下所示:

<fo:simple-page-master master-name="page_even" page-height="210mm" page-width="297mm" margin="{$page-margin}">
    <fo:region-body region-name="body" margin-top="190mm" margin-bottom="20mm" margin-left="200mm" margin-right="97mm"/>
    <fo:region-before region-name="header-even" extent="190mm" precedence="true"/>
    <fo:region-after region-name="footer-even" extent="20mm" precedence="true"/>
    <fo:region-start region-name="outside" extent="15mm"/>
    <fo:region-end region-name="inside" extent="15mm"/>
</fo:simple-page-master>

<fo:simple-page-master master-name="page_odd" page-height="210mm" page-width="297mm" margin="{$page-margin}">
    <fo:region-body region-name="body" margin-top="20mm" margin-bottom="20mm" margin-left="15mm" margin-right="15mm" padding="0pt"/>
    <fo:region-before region-name="header-odd" extent="20mm" precedence="true"/>
    <fo:region-after region-name="footer-odd" extent="{20mm" precedence="true"/>
    <fo:region-start region-name="inside" extent="15mm"/>
    <fo:region-end region-name="outside" extent="15mm"/>
</fo:simple-page-master>

所以在偶数页上,我有一个非常大的标题,我将在其中放置绘图。正文区域的高度为 0 毫米,宽度为 0 毫米,因此该区域中不应包含任何文本,并且应自动转到下一页。

文本由放置在表格中的一些数据组成(宽 17 厘米,高 1.5 厘米)。在奇数页上,大约有 10 个表格适合,第 11 个被移动到下一个可用页面。到现在为止还挺好。

我的 XML 由这样的数据块组成:

<data id="3" name="blah" drawing="xyz">

我使用标记来提取“绘图”属性的内容。偶数页页眉指的是这个标记,所以偶数页减慢了奇数页第一个数据块中列出的绘图。

渲染器(Antennahouse)仍然在每个偶数页上放置一个表格。表格放置在页脚顶部,与页脚文本重叠。该表比它所在的区域大,所以它应该被移动到下一页,但是这个逻辑在这里失败了。 有一个“重叠”属性,但这没有我需要的效果:没有办法指定“根本不重叠”,只是处理重叠的方法。

【问题讨论】:

  • 我想看看更多的设置和内容。偶数页上的图像是静态的(相同的)还是变化的?您打算如何每隔一页更改图像?标记?我个人认为,也许您可​​以将“图像”放入不适合页面的脚注中,这样它就会自动转到下一页(并填充它)。
  • 我还要评论说,拥有“0”大小的正文区域的页面可能无法满足您“希望”的期望。我需要挖掘规范,但我相信没有正文内容的页面可能会被渲染引擎折叠。例如,如果我的流程中的第一个块将“page-break-before”设置为“always”,您仍然(应该)不会得到第一个空白页。
  • 如果空白页面被折叠,我会感到惊讶。我通过放置具有“page-break-before=always”属性的空块来制作没有正文内容的页面(例如,在章节末尾强制放置几个空页面),这总是按预期工作。
  • 使用脚注是行不通的:在某些情况下,我必须重复绘图。我可以拥有一个或 60 个数据块,它们都引用同一张图

标签: xsl-fo


【解决方案1】:

page_even 中为fo:region-body/@region-name 使用不同的名称,这样您的流程就不会流入偶数页。

【讨论】:

  • 这更像是一个评论,而不是一个完整的答案。考虑提供这样的反馈作为评论。
  • 在快速测试中,这解决了问题。所以@Kris 我更愿意将此作为答案而不是评论。
猜你喜欢
  • 2015-02-01
  • 2019-10-16
  • 2021-04-18
  • 2021-09-19
  • 2012-07-28
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多