Bilder

Bilder werden in WordML mit dem Element <w:pict> eingebettet und mit der Markup-Sprache VML (Vector Markup Language) genauer definiert. Die genaue Beschreibung von VML finden Sie auf der englischsprachigen Microsoft-Seite unter dem Suchbegriff »VML Reference«. Im Falle von VML handelt es sich nicht um eine proprietäre Microsoft-Auszeichnungssprache, sondern um eine sogenannte »Note«, die vom W3C herausgegeben und von Microsoft maßgeblich mitgestaltet wurde. Die Note des W3C finden Sie unter http://www.w3.org/TR/NOTE-VML.

Grundsätzlich müssen zwei Arten von Grafiken unterschieden werden. Dies sind zum einen diejenigen, die referenziert wurden, d.h. die über eine Pfadangabe auf eine Grafikdatei in das Dokument eingebettet werden, wie beispielweise in HTML, zum anderen sind es Grafiken, die ohne Verlinkung in das Dokument integriert wurden, sei es per "copy and paste" oder über die entsprechenden Menüs.

Referenzierte Bilder werden mit relativ einfachen Strukturen in das Dokument eingebettet. Die meisten VML-Elemente können für unsere Zwecke ignoriert werden. Ausschlaggebend sind diejenigen Elemente, die die Breite bzw. Höhe festlegen und den Pfad zur Grafikdatei enthalten. Das folgende Beispiel zeigt einen solchen Grafikaufruf.

<w:p>
  <w:r>
    <w:pict>                                                    (1)
      <v:shapetype id="_x0000_t75" coordsize="21600,21600" 
       o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" 
       filled="f" stroked="f">
       <v:stroke joinstyle="miter"/>
       <v:formulas>
          <v:f eqn="if lineDrawn pixelLineWidth 0"/>
          <v:f eqn="sum @0 1 0"/>
          <v:f eqn="sum 0 0 @1"/>
          <v:f eqn="prod @2 1 2"/>
          <v:f eqn="prod @3 21600 pixelWidth"/>
          <v:f eqn="prod @3 21600 pixelHeight"/>
          <v:f eqn="sum @0 0 1"/>
          <v:f eqn="prod @6 1 2"/>
          <v:f eqn="prod @7 21600 pixelWidth"/>
          <v:f eqn="sum @8 21600 0"/>
          <v:f eqn="prod @7 21600 pixelHeight"/>
          <v:f eqn="sum @10 21600 0"/>
       </v:formulas>
       <v:path o:extrusionok="f" gradientshapeok="t" 
        o:connecttype="rect"/>
       <o:lock v:ext="edit" aspectratio="t"/>
      </v:shapetype>
      <v:shape id="_x0000_i1025" type="#_x0000_t75"            (2)
       style="width:333.75pt;height:250.5pt">
        <v:imagedata src="2004_1112Bild0033.JPG"/>             (3) 
      </v:shape>
    </w:pict>
  </w:r>
</w:p>

(1) Das Element <w:pict> ist das Container-Element für Bilder und andere Multimediaobjekte.

(2) Das Element <v:shape> legt mit seinem Attribut style die Höhe und die Breite einer Grafikdatei fest.

(3) Das Attribut src des Elementes <v:imagedata> gibt den Pfad an, der zur Grafik führt. Dieser kann relativ zum Speicherort des WordML-Dokumentes sein oder auch als absoluter Pfad angelegt werden.

Beispiel mit Grafik

Abb. Beispiel mit Grafik

Grafiken, die direkt in das Dokument eingebettet wurden, werden in einer Mischung aus VML und Binärcode (Base64) abgespeichert. Je nach Anwendungsfall kann eine solche Speicherform sehr problematisch sein.

Bei der Base64-Kodierung handelt es sich um eine Umkodierung der Binärcodes in den Grafiken in eine 6-Bit-Kodierung. Das heißt, dass die Grafiken in ihren jeweiligen Formaten erhalten bleiben und nur die Zeichen im Binärcode dieser Grafiken umkodiert wurden.

Die Base64-Kodierung kann u.a. mit Tools erzeugt werden. Eines dieser kostenlosen Tools ist Base64, das unter der Adresse http://www.fourmilab.ch/webtools/base64 kostenlos zu beziehen ist.

Problematisch ist eine solche Einbettung der Grafiken vor allem deshalb, weil die meisten XML-Layoutstrukturen mit externen Grafiken arbeiten, die referenziert werden. Diese müssten beispielsweise bei einer WordML-zu-XML-Transformation folglich erst erzeugt werden, indem eine Dekodierung der Base64-Daten stattfindet und diese Daten in separaten Dateien abgespeichert werden.

Innerhalb von WordML wird der Base64-Code in einem Element <w:binData> abgelegt und kann äußerst umfangreich sein.

Hier ein kleiner Auszug aus einem solchen Binärcode:

<w:binData w:name="wordml://02000001.jpg">
/9j/4S0aRXhpZgAATU0AKgAAAAgACwEPAAIAAAAJAAAAkgEQAAI
  AAAAQAAAAnAESAAMAAAABAAEAAAEaAAUAAAABAAAArAEbAAUAA 
  AABAAAAtAEoAAMAAAABAAIAAAExAAIAAAAnAAAAvAEyAAIAAAA
  UAAAA5AITAAMAAAABAAIAAIKYAAIAAAAFAAAA+Idp
  AAQAAAABAAAA/gAABHBGVUpJRklMTQAARmlu......
</w:binData>
Tipp der data2type-Redaktion:
Zum Thema WordML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © dpunkt.verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken. Ansonsten unterliegt dieses Kapitel aus dem Buch "Professionelle XML-Verarbeitung mit Word" 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