Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


fo:region-body

Bereits die fo:region-body bietet zahlreiche Konfiguratiopnsmöglichkeiten. So ist bei mehrspaltiger Textdarstellung die Arbeit mit column-count="2", span="all" bzw. span="none" interessant. Ein Beispiel sagt hierbei mehr als viele Worte. Der XML Input sieht (kurz gefaßt) etwa so aus:

<?xml version="1.0" encoding="iso-8859-1"?>
<root>
  <Absatz>(Text)</Absatz>
  <Absatz span="ja">(Text)</Absatz>
  <Absatz>(Text)</Absatz>
</root>

Das folgende XSL-Stylesheet transformiert das vorherige XML-Dokument in ein FO-Dokument; ab hier "übernimmt" der FO-Prozessor die Transformation nach PDF.

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/">
  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
    <fo:simple-page-master 
     margin-right="15mm"
     margin-left="15mm" 
     margin-bottom="1cm" 
     margin-top="1cm" 
     page-width="21cm"
     page-height="297mm" 
     master-name="layout1">
     <fo:region-body 
        margin-right="0cm" 
        margin-bottom="15mm"
        margin-top="0mm" 
        margin-left="0mm" 
        background-color="white"
        column-gap="5mm" column-count="2" />
    </fo:simple-page-master>
   </fo:layout-master-set>
   <fo:page-sequence master-reference="layout1">
    <fo:flow flow-name="xsl-region-body">
     <xsl:for-each select="/root/Absatz">
      <fo:block text-align="justify" 
         line-height="15pt"
         font-family="sans-serif" 
         font-size="12pt" 
         space-after.optimum="10pt">
       <xsl:choose>
        <xsl:when test="@span='ja'">
         <xsl:attribute name="span">all</xsl:attribute>
         <xsl:attribute name="background-color">lightgrey</xsl:attribute>       
         <xsl:attribute name="padding">2mm</xsl:attribute>
         <fo:inline color="red">
          <xsl:text>TOP </xsl:text>
          <xsl:value-of select="position()" />
         </fo:inline>
        </xsl:when>
        <xsl:otherwise>
         <xsl:attribute name="span">none</xsl:attribute>
         <fo:inline color="green">
          <xsl:text>TOP </xsl:text>
          <xsl:value-of select="position()" />
         </fo:inline>
        </xsl:otherwise>
       </xsl:choose>
       <xsl:text> </xsl:text>
       <xsl:value-of select="." />
      </fo:block>
     </xsl:for-each>
    </fo:flow>
   </fo:page-sequence>
  </fo:root>
 </xsl:template>
</xsl:stylesheet>

Das Ergebnis (mit mehr Text):

pic/FO4.jpg

qrpic/FO1_3.jpg

wg / 9. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info10@wilfried-grupe.de