<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">

  <!-- by T. Meinike 07/2012 | speiseplan_pdf.xsl | Ausgabe von XSL-FO bzw. PDF -->

  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

  <!-- Basistemplate / FO-Grundgerüst -->
  <xsl:template match="speiseplan">

    <fo:root>

      <fo:layout-master-set>

        <!-- Seitendefinition -->
        <fo:simple-page-master master-name="Speiseplan-A4-quer" page-width="29.7cm" page-height="21cm"
          margin-top="0.5cm" margin-bottom="0.75cm" margin-left="1.5cm" margin-right="1cm">

          <!-- Aufteilung in drei Bereiche -->
          <fo:region-body margin-top="1cm"/>
          <fo:region-before extent="2cm"/>
          <fo:region-after extent="0.5cm"/>
          
        </fo:simple-page-master>

      </fo:layout-master-set>


      <!-- Seitenabfolge / Inhalte für die eigentlichen Seiten -->
      <fo:page-sequence master-reference="Speiseplan-A4-quer">

        <!-- Kopfbereich mit Text -->
        <fo:static-content flow-name="xsl-region-before">

         <fo:block font-family="Arial, sans-serif" color="#000" font-size="10pt" text-align="right" margin-right="0.2cm">
            Speiseplan
          </fo:block>
          
          <fo:block font-family="Arial, sans-serif" font-size="24pt" color="#00C">
            Speiseplan der Mensa <xsl:value-of select="@mensa"/>
          </fo:block>
          
        </fo:static-content>

        <!-- Fußbereich mit Seitenzahl -->
        <fo:static-content flow-name="xsl-region-after">

          <fo:block font-size="9pt" text-align="right">
            <fo:page-number/>
          </fo:block>

        </fo:static-content>

        <!-- Hauptbereich der Inhaltseiten mit Ausgabe der ausgewählten XML-Daten -->
        <fo:flow flow-name="xsl-region-body">

          <!-- angebot-Template aufrufen -->
          <xsl:apply-templates select="angebot"/>

        </fo:flow>

      </fo:page-sequence>

    </fo:root>

  </xsl:template>


  <!-- Template für die einzelnen Angebote -->
  <xsl:template match="angebot">
    
    <fo:block break-before="page"/>

    <fo:block font-family="Arial, sans-serif" font-size="18pt" margin-top="0.75cm" margin-bottom="0.25cm" color="#C00">
      Angebot am <xsl:value-of select="@datum"/>
    </fo:block>

    <fo:table font-family="Arial, sans-serif" border="0.5pt solid #000" border-collapse="collapse">
      
      <!-- Aufteilung der Spalten -->
      <fo:table-column column-width="4cm"  border="0.5pt solid #000"/>
      <fo:table-column column-width="10cm" border="0.5pt solid #000"/>
      <fo:table-column column-width="3cm"  border="0.5pt solid #000"/>
      <fo:table-column column-width="3cm"  border="0.5pt solid #000"/>
      <fo:table-column column-width="3cm"  border="0.5pt solid #000"/>
      <fo:table-column column-width="4cm"  border="0.5pt solid #000"/>
      
      <fo:table-header font-weight="bold" color="#000" background-color="#EEE">
        <!-- Kopfzeile -->
        <fo:table-row border="0.5pt solid #000" font-size="12pt" text-align="center">
          <fo:table-cell padding="5pt"><fo:block>Theke</fo:block></fo:table-cell>
          <fo:table-cell padding="5pt"><fo:block>Gericht</fo:block></fo:table-cell>
          <fo:table-cell padding="5pt"><fo:block>Studenten</fo:block></fo:table-cell>
          <fo:table-cell padding="5pt"><fo:block>Mitarbeiter</fo:block></fo:table-cell>
          <fo:table-cell padding="5pt"><fo:block>Gäste</fo:block></fo:table-cell>
          <fo:table-cell padding="5pt"><fo:block>Bild</fo:block></fo:table-cell>
        </fo:table-row>
      </fo:table-header>
      
      <fo:table-body>
        <!-- auswahl-Template aufrufen / Tabellenzeilen füllen -->
        <xsl:apply-templates select="auswahl"/>
      </fo:table-body>
      
    </fo:table>

  </xsl:template>


  <!-- Template für die eigentlichen Tabelleninhalte (Auswahl/Gerichte) -->
  <xsl:template match="auswahl">
    
    <fo:table-row border="0.5pt solid #000" font-size="10pt" padding="5pt" text-align="center">

      <fo:table-cell padding="5pt">
        <fo:block font-weight="bold"><xsl:value-of select="theke"/></fo:block>
      </fo:table-cell>

      <fo:table-cell padding="5pt">
        <fo:block><xsl:value-of select="gericht"/></fo:block>
      </fo:table-cell>

      <fo:table-cell padding="5pt">
        <fo:block><xsl:value-of select="preis/@s"/> €</fo:block>
      </fo:table-cell>

      <fo:table-cell padding="5pt">
        <fo:block><xsl:value-of select="preis/@m"/> €</fo:block>
      </fo:table-cell>

      <fo:table-cell padding="5pt">
        <fo:block><xsl:value-of select="preis/@g"/> €</fo:block>
      </fo:table-cell>

      <fo:table-cell padding="5pt">
        <fo:block> 
          <!-- externes Bild -->
          <fo:external-graphic src="url('{bild}')" content-width="3cm"/>
        </fo:block>
      </fo:table-cell>
    </fo:table-row>
    
  </xsl:template>

</xsl:stylesheet>