Grundgerüst XSLT für PDF

Für den Start mit XSLT können Sie mit folgender minimalen Datei starten, welche dann entsprechend erweitert werden kann:

 

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:iduPdf="eo:iduPdf">
  
  <!--
  Einige grundlegenden Einstellungen zum Zieldokument:
  omit-xml-declaration: <?xml... soll im Zieldokument mit ausgegeben werden
  indent: Einrückung nach der hierarchischen Struktur des Zieldokuments-->
  <xsl:output omit-xml-declaration="yes" media-type="text/html" indent="yes" method="html"/>

  <!--allgemeine PDF-Einstellungen zum Zieldokument-->
  <xsl:variable name="pdfProp1" select="iduPdf:SetMargin(20)"/>

  <!--Einstiegspunkt für die Abarbeitung: Rootelement-->
  <xsl:template match="/">
    <html>
      <!--CSS in eigenes Template ausgelagert wegen Übersichtlichkeit-->
      <xsl:call-template name="addCss" />
      
      <body>
        <!--hier wird der Inhalt des Dokumentes gerendert-->
        <xsl:call-template name="RenderContent" />
      </body>
    </html>
  </xsl:template>

  <xsl:template name="RenderContent">
    <h1>Beispielansicht</h1>

    <table>
      <tbody>
        <tr>
          <td>Spalte 1</td>
          <td>Spalte 2</td>
        </tr>
        <tr>
          <td>Wert 1</td>
          <td>Wert 2</td>
        </tr>
      </tbody>
    </table>
  </xsl:template>
  
  <xsl:template name="addCss">
    <style>
      <![CDATA[
        body
        {
          /* Body Padding und Margin sind initial nicht 0 */
          margin:0px;
          padding:0px;
          font-family: Arial, sans-serif;
          font-size:10pt;
        }
            
        /* Tabelle während der Entwicklung immer mit Rand darstellen,
          damit Platzaufteilung besser analysierbar - kann später deaktiviert werden */
        table
        {
          border: 1pt solid #000000;
          border-Collapse: collapse;
        }
            
        td
        {
          border: 1pt solid #000000;
        }

        /* ... weitere Regeln ... */
      ]]>
    </style>
  </xsl:template>    
</xsl:stylesheet>