我使用XSLT和XML创建XSLT,从哪里生成PDF。所使用的引擎只支持XSLT1.0。
我试图建立这样的布局:
“。
我所面临的问题是建立流程,以满足以下几个方面:
这有可能做到这一点吗?我需要如何设置页面集/布局?谢谢!
我尝试过简化的XSLFO,但并不满足上述所有条件:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="Page01">
<fo:region-body region-name="Body"/>
<fo:region-after region-name="Page01Footer"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="Page02">
<fo:region-body region-name="Body"/>
<fo:region-after region-name="Page02Footer"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="AllPages">
<fo:region-body region-name="Body"/>
<fo:region-after region-name="AllPagesFooter"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="PagSeqMaster">
<fo:repeatable-page-master-alternatives maximum-repeats="no-limit">
<fo:conditional-page-master-reference master-reference="Page01"
page-position="first"/>
<fo:conditional-page-master-reference master-reference="Page02"
blank-or-not-blank="blank"/>
<fo:conditional-page-master-reference master-reference="AllPages"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
<fo:page-sequence-master master-name="PagSeqMaster-alt">
<fo:single-page-master-reference master-reference="Page01"/>
<fo:single-page-master-reference master-reference="Page02"/>
<fo:repeatable-page-master-alternatives maximum-repeats="no-limit">
<fo:conditional-page-master-reference master-reference="AllPages"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="PagSeqMaster">
<fo:static-content flow-name="Page01Footer">
<fo:block>Footer 01</fo:block>
</fo:static-content>
<fo:static-content flow-name="Page02Footer">
<fo:block>Footer 02 </fo:block>
</fo:static-content>
<fo:static-content flow-name="AllPagesFooter">
<fo:block>All Other Pages Footer</fo:block>
</fo:static-content>
<fo:flow flow-name="Body">
<fo:block>
repeating table content starting on page 1 goes here
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>发布于 2022-06-30 15:23:31
您可以通过使用axf:float-move扩展在第二个页面上生成一个零高度浮点数(参见https://www.antenna.co.jp/AHF/help/en/ahf-float.html#axf.float-move)来使用AH格式化程序来完成这一任务。浮点数会导致一页后的空白页,不会干扰两页或三页的表。
<?xml version="1.0" encoding="UTF-8"?>
<fo:root
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions">
<fo:layout-master-set>
<fo:simple-page-master master-name="Page01">
<fo:region-body region-name="Body"/>
<fo:region-after region-name="Page01Footer"
extent="1in" />
</fo:simple-page-master>
<fo:simple-page-master master-name="Page02">
<fo:region-body region-name="Body"/>
<fo:region-after region-name="Page02Footer"
extent="1in" />
</fo:simple-page-master>
<fo:simple-page-master master-name="AllPages">
<fo:region-body region-name="Body"/>
<fo:region-after region-name="AllPagesFooter"
extent="1in" />
</fo:simple-page-master>
<fo:page-sequence-master master-name="TableMaster">
<fo:single-page-master-reference master-reference="Page01"/>
<fo:single-page-master-reference master-reference="Page02"/>
<fo:repeatable-page-master-reference master-reference="AllPages"/>
</fo:page-sequence-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="TableMaster">
<fo:static-content flow-name="Page01Footer">
<fo:block>Footer 01</fo:block>
</fo:static-content>
<fo:static-content flow-name="Page02Footer">
<fo:block>Footer 02 </fo:block>
</fo:static-content>
<fo:static-content flow-name="AllPagesFooter">
<fo:block>All Other Pages Footer</fo:block>
</fo:static-content>
<fo:flow flow-name="Body">
<fo:float float="before" axf:float-move="next"><fo:block/></fo:float>
<fo:block>
repeating table content starting on page 1 goes here
</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="AllPages">
<fo:static-content flow-name="AllPagesFooter">
<fo:block>All Other Pages Footer</fo:block>
</fo:static-content>
<fo:flow flow-name="Body">
<fo:block>
rest of content goes here
</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="TableMaster">
<fo:static-content flow-name="Page01Footer">
<fo:block>Footer 01</fo:block>
</fo:static-content>
<fo:static-content flow-name="Page02Footer">
<fo:block>Footer 02 </fo:block>
</fo:static-content>
<fo:static-content flow-name="AllPagesFooter">
<fo:block>All Other Pages Footer</fo:block>
</fo:static-content>
<fo:flow flow-name="Body">
<fo:float float="before" axf:float-move="next"><fo:block/></fo:float>
<fo:block>
repeating table content starting on page 1 goes here
</fo:block>
<fo:block break-before="page">
repeating table content on page 2 goes here
</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="AllPages">
<fo:static-content flow-name="AllPagesFooter">
<fo:block>All Other Pages Footer</fo:block>
</fo:static-content>
<fo:flow flow-name="Body">
<fo:block>
rest of content goes here
</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="TableMaster">
<fo:static-content flow-name="Page01Footer">
<fo:block>Footer 01</fo:block>
</fo:static-content>
<fo:static-content flow-name="Page02Footer">
<fo:block>Footer 02 </fo:block>
</fo:static-content>
<fo:static-content flow-name="AllPagesFooter">
<fo:block>All Other Pages Footer</fo:block>
</fo:static-content>
<fo:flow flow-name="Body">
<fo:float float="before" axf:float-move="next"><fo:block/></fo:float>
<fo:block>
repeating table content starting on page 1 goes here
</fo:block>
<fo:block break-before="page">
repeating table content on page 2 goes here
</fo:block>
<fo:block break-before="page">
repeating table content on page 3 goes here
</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="AllPages">
<fo:static-content flow-name="AllPagesFooter">
<fo:block>All Other Pages Footer</fo:block>
</fo:static-content>
<fo:flow flow-name="Body">
<fo:block>
rest of content goes here
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>https://stackoverflow.com/questions/72813675
复制相似问题