Xslt 每N页打印一次

Xslt 每N页打印一次,xslt,xsl-fo,apache-fop,Xslt,Xsl Fo,Apache Fop,我正在制作一份文件,该文件将自动包装在信封中 为此,文档每5页和最后一页都需要有一个标记 问题是,毫无疑问,XSL不能依赖fo提供的 有人能想出一个解决方案吗?我所能做到的最好的方法就是在fo:page sequence master中添加足够的重复,以处理最大页数 为了制作更小的屏幕截图,此示例在每三页和最后一页上都做了标记: <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:axf="http://www.a

我正在制作一份文件,该文件将自动包装在信封中

为此,文档每5页和最后一页都需要有一个标记

问题是,毫无疑问,XSL不能依赖fo提供的


有人能想出一个解决方案吗?

我所能做到的最好的方法就是在
fo:page sequence master
中添加足够的重复,以处理最大页数

为了制作更小的屏幕截图,此示例在每三页和最后一页上都做了标记:

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
    xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
    font-size="36pt">
    <fo:layout-master-set>
        <fo:simple-page-master master-name="spm" page-width="5in" page-height="5in">
            <fo:region-body margin="36pt"/>
        </fo:simple-page-master>
        <fo:simple-page-master master-name="marked" page-width="5in" page-height="5in">
            <fo:region-body margin="36pt"/>
            <fo:region-start extent="36pt"/>
        </fo:simple-page-master>
        <fo:page-sequence-master master-name="psm">
            <fo:repeatable-page-master-alternatives maximum-repeats="2">
                <fo:conditional-page-master-reference master-reference="marked" page-position="last"/>
                <fo:conditional-page-master-reference master-reference="spm"/>
            </fo:repeatable-page-master-alternatives>
            <fo:single-page-master-reference master-reference="marked"/>
            <fo:repeatable-page-master-alternatives maximum-repeats="2">
                <fo:conditional-page-master-reference master-reference="marked" page-position="last"/>
                <fo:conditional-page-master-reference master-reference="spm"/>
            </fo:repeatable-page-master-alternatives>
            <fo:single-page-master-reference master-reference="marked"/>
            <!-- Repeat as often as necessary. -->
            <fo:repeatable-page-master-alternatives maximum-repeats="2">
                <fo:conditional-page-master-reference master-reference="marked" page-position="last"/>
                <fo:conditional-page-master-reference master-reference="spm"/>
            </fo:repeatable-page-master-alternatives>
            <fo:single-page-master-reference master-reference="marked"/>
        </fo:page-sequence-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="psm">
        <fo:static-content flow-name="xsl-region-start">
            <fo:block margin-top="2in"><fo:external-graphic width="100%" src="logo-antenna.svg" content-width="scale-down-to-fit"/></fo:block>
        </fo:static-content>
        <fo:flow flow-name="xsl-region-body">
            <fo:block break-after="page">1</fo:block>
            <fo:block break-after="page">2</fo:block>
            <fo:block break-after="page">3</fo:block>
            <fo:block break-after="page">4</fo:block>
            <fo:block>5</fo:block>
        </fo:flow>
    </fo:page-sequence>
</fo:root>

1.
2.
3.
4.
5.

您使用的是什么FO处理器?fop,我不知道这是相关的,很抱歉没有提及。顺便说一下,我已经找到了一个解决方案,但我只限于任何给定的页数。我应该发布它吗?你可以调查从FOP生成的区域树。(搜索操作区域树示例)它表示合成的中间格式。这将包含页面对象,您可以通过操作区域树并继续使用格式来注入标记。这与我的解决方案非常接近,唯一的区别是我也为标记的页面使用了可重复的页面序列,最大重复次数为1,因为我担心即使不需要也会添加这些页面。谢谢你给了我一个简洁明了的回答!