How can i generate pdf using xsl-fo footer and header?

footer, pdf, xml, xsl-fo, xslt

Solution

I'm doing it like that - in 'fo:layout-master-set' my page-master looks like that:

      <fo:simple-page-master master-name="section1-first-page" page-width="8.268055555555555in" page-height="11.693055555555556in" margin-top="35.45pt" margin-bottom="35.45pt" margin-right="70.9pt" margin-left="70.9pt">
         <fo:region-body margin-top="21.25pt" margin-bottom="21.25pt"></fo:region-body>
         <fo:region-before region-name="first-page-header" extent="11in"></fo:region-before>
         <fo:region-after region-name="first-page-footer" extent="11in" display-align="after"></fo:region-after>
      </fo:simple-page-master>

fo:region-before defines header region name, while fo:region-after footer region name.

To add content you have to add to 'fo:page-sequence', before 'fo:flow':

      <fo:static-content flow-name="first-page-header">
         <fo:block><fo:inline>HEADER TEXT</fo:inline></fo:block>
      </fo:static-content>
      <fo:static-content flow-name="first-page-footer">
         <fo:block><fo:inline>FOOTER TEXT</fo:inline></fo:block>
      </fo:static-content>

You can obviously change flow-names to whatever you want. It's just an example from my code.

Problem

I'm trying to generate pdf but i don't know how can i adding header and footer into each page. I'm using xsl-fo namespace and here is root of xsl code. ``` <xsl:template match="ROOT"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="simpleA4" page-height="450mm" page-width="350mm" margin-top="20mm" margin-bottom="20mm" margin-left="20mm" margin-right="20mm"> <fo:region-body border="solid thick black" /> </fo:simple-page-master> <fo:page-sequence-master master-name="SequenceMaster1"> <fo:repeatable-page-master-reference maximum-repeats="3" master-reference="simpleA4" /> </fo:page-sequence-master> </fo:layout-master-set> <xsl:apply-templates /> </fo:root> </xsl:template> ``` and my page template: ``` <xsl:template match="PAGE"> <fo:page-sequence master-reference="SequenceMaster1" text-align="center"> <fo:flow flow-name="xsl-region-body"> <fo:block font-family="Arial" text-align="left" language="tr"> <!-- ======================================Common Bigger table========================================================================================= --> <fo:table width="100%" border-before-width="thin" border-top-width="thick"> <fo:table-column column-width="310mm" /> <fo:table-body break-after="page" border-width="1mm" border-style="solid" height="410mm"> <fo:table-row> <fo:table-cell padding-left="2mm" height="410mm"> <xsl:apply-templates /> </fo:table-cell> </fo:table-row> </fo:table-body> </fo:table> </fo:block> </fo:flow> </fo:page-sequence> </xsl:template> ```

Original source