1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| <fo:layout-master-set>
<!-- ========================================================= -->
<!-- Generate page masters and page sequences for each section -->
<!-- ========================================================= -->
<xsl:for-each select="w:body/wx:sect">
<xsl:variable name="first-page-name" select="concat('sectionn',position(),'-first-page')"/>
<xsl:variable name="odd-page-name" select="concat('section',position(),'-odd-page')"/>
<xsl:variable name="even-page-name" select="concat('section',position(),'-even-page')"/>
<xsl:variable name="page-sequence-master-name" select="concat('section',position(),'-page-sequence-master')"/>
<!-- ====================================== -->
<!-- Masters for first, odd, and even pages -->
<!-- ====================================== -->
<fo:simple-page-master master-name="{$first-page-name}" page-height="22cm" page-width="14cm" margin-left="10cm">
<xsl:apply-templates select=".//w:sectPr/w:pgSz"/>
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'page-master'"/>
</xsl:apply-templates>
<fo:region-body>
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'region-body'"/>
</xsl:apply-templates>
<xsl:apply-templates select=".//w:sectPr/w:pgBorders">
<xsl:with-param name="page" select="first"/>
</xsl:apply-templates>
<xsl:apply-templates select=".//w:sectPr/w:cols"/>
<xsl:apply-templates select=".//w:sectPr/w:vAlign"/>
</fo:region-body>
<fo:region-before region-name="first-page-header" extent="{$default-header-extent}">
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'static-content'"/>
</xsl:apply-templates>
</fo:region-before>
<fo:region-after region-name="first-page-footer" extent="{$default-footer-extent}" display-align="after">
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'static-content'"/>
</xsl:apply-templates>
</fo:region-after>
</fo:simple-page-master>
<fo:simple-page-master master-name="{$odd-page-name}">
<xsl:apply-templates select=".//w:sectPr/w:pgSz"/>
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'page-master'"/>
</xsl:apply-templates>
<fo:region-body>
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'region-body'"/>
</xsl:apply-templates>
<xsl:apply-templates select=".//w:sectPr/w:pgBorders"/>
<xsl:apply-templates select=".//w:sectPr/w:cols"/>
<xsl:apply-templates select=".//w:sectPr/w:vAlign"/>
</fo:region-body>
<fo:region-before region-name="odd-page-header" extent="{$default-header-extent}">
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'static-content'"/>
</xsl:apply-templates>
</fo:region-before>
<fo:region-after region-name="odd-page-footer" extent="{$default-footer-extent}" display-align="after">
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'static-content'"/>
</xsl:apply-templates>
</fo:region-after>
</fo:simple-page-master>
<fo:simple-page-master master-name="{$even-page-name}">
<xsl:apply-templates select=".//w:sectPr/w:pgSz"/>
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'page-master'"/>
</xsl:apply-templates>
<fo:region-body>
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'region-body'"/>
</xsl:apply-templates>
<xsl:apply-templates select=".//w:sectPr/w:pgBorders"/>
<xsl:apply-templates select=".//w:sectPr/w:cols"/>
<xsl:apply-templates select=".//w:sectPr/w:vAlign"/>
</fo:region-body>
<fo:region-before region-name="even-page-header" extent="{$default-header-extent}">
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'static-content'"/>
</xsl:apply-templates>
</fo:region-before>
<fo:region-after region-name="even-page-footer" extent="{$default-footer-extent}" display-align="after">
<xsl:apply-templates select=".//w:sectPr/w:pgMar">
<xsl:with-param name="area" select="'static-content'"/>
</xsl:apply-templates>
</fo:region-after>
</fo:simple-page-master>
<!-- create a page-sequence master -->
<fo:page-sequence-master master-name="{$page-sequence-master-name}">
<xsl:if test=".//w:sectPr/w:titlePg[not(@w:val='off')]">
<fo:single-page-master-reference master-reference="{$first-page-name}"/>
</xsl:if>
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference odd-or-even="odd" master-reference="{$odd-page-name}"/>
<fo:conditional-page-master-reference odd-or-even="even" master-reference="{$even-page-name}"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</xsl:for-each>
</fo:layout-master-set> |
Partager