Grafiken und Bilder

Es wird eine Grafik eingebunden.

Es wird gezeigt, wie externe Grafiken eingebettet und in ihren Höhen und Breiten dimensioniert werden können.

Auszug aus der DTD:

<!ELEMENT Grafik EMPTY>                                  ❶ 
<!ATTLIST Grafik
          Datei ENTITY #REQUIRED                         ❷
          Breite CDATA #IMPLIED                          ❸
          Hoehe CDATA #IMPLIED>                          ❸

❶ Grafiken sind externe, nicht-XML-Entities.

❷ Die Grafiken müssen in der Doctype-Deklaration als Entities definiert werden.

❸ Die Höhen- und Breiten-Angaben können als Attributwerte hinzugefügt werden.

Stylesheet:

<xsl:template match="Grafik">
   <fo:block>                                                         ❶    
      <fo:external-graphic src="{unparsed-entity-uri(@Datei)}">       ❷
         <xsl:attribute name="content-width">                         ❸
            <xsl:value-of select="@Breite"/>                          ❸
         </xsl:attribute>
         <xsl:attribute name="content-height">                        ❹
            <xsl:value-of select="@Hoehe"/>                           ❹
         </xsl:attribute>
      </fo:external-graphic>
   </fo:block>
</xsl:template>
 

❶ Die Grafik muss in einen Block eingekleidet werden. In diesem Block werden ggf. die Aliniierungs- und Rahmen-Spezifikationen beigefügt.

❷ Innerhalb des Elements <fo:external-graphic> wird mit dem Attribut src (Quelle) auf die einzubindende Grafik verwiesen. Diese Quelle ist als Attributwert von Datei bezeichnet. Da dieser in Form einer ENTITY vorliegt, muss er in die Funktion unparsed-entity-uri() eingefügt werden. Sind die Grafiken in der DTD nicht als ENTITY-Objekte deklariert, werden als Attributwert zu src der Pfad und der Dateiname angegeben, z. B. src="{Grafiken/Beispiel.jpg}". Bei einer relativen Pfadangabe ist vom Standort der textlichen XML-Instanz auszugehen. Bitte die Klammerung mit den geschweiften Klammern beachten!

❸ Mit dem Attribut content-width wird auf die Breite der Grafik Einfluss genommen. Das Element <xsl:attribute> erzeugt ein Attribut im Element <fo:external-graphic> mit dem Namen des im Attribut name angegebenen Wertes, hier das Attribut content-width. Der Wert des Attributs wird mit <xsl:value-of> aus dem Attribut Breite herausgelesen.

❹ Das Attribut content-height legt die Höhe der Grafik fest. Wird nur eines der Attribute content-height oder content-width in der Instanz spezifiziert, wird die Grafik automatisch in beiden Dimensionen skaliert. Werden beide Attribute spezifiziert, stimmen aber nicht mit den Maßen der Grafikdatei überein, so kommt es bei der Größenanpassung zu Verzerrungen.

 

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSL-FO bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © dpunkt.verlag GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSL-FO in der Praxis" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

dpunkt.verlag GmbH, Ringstraße 19B, 69115 Heidelberg, fon 06221-14830, fax 06221-148399, hallo(at)dpunkt.de