Floating Embeddings

When the embedding is present as a floating object, it is stored as follows:

  • The WordprocessingML <pict> element specifies the presence of a floating image in the document.

  • The child Office VML Drawing <OLEObject> element shall specify the details about the embedding itself, including an explicit relationship to the appropriate Embedded Package or Embedded Object part.

  • The child VML <shape> element shall specify the presence of the image that may be used to represent the object in place of loading the actual object data.

For example, if we embed a SpreadsheetML worksheet in a WordprocessingML document as a floating object, the following run content would be present:

<w:r>
  <w:pict>
    <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:shapetype>
    <v:shape id="_x0000_s1028" type="#_x0000_t75"
      style="position:absolute;margin-left:354.75pt;margin-
      top:642.75pt;width:182.3pt;height:73.6pt;z-index:251660288">
     <v:imagedata r:id="rId4" o:title="" />
    </v:shape>
    <o:OLEObject Type="Embed" ProgID="Excel.Sheet.8"
      ShapeID="_x0000_s1028" DrawAspect="Content" ObjectID="_1218026611"
      r:id="rId5" />
  </w:pict>
</w:r>

If we examine this markup, it can be seen that:

  • We have a floating image, as defined by the <pict> element.

  • The <OLEObject> element specifies that that floating image is actually an embedding that is stored as an Embed, and that its ProgID is Excel.Sheet.8 (the ProgID code for Microsoft Excel worksheets); it also specifies that the associated image (when the object data cannot be used) is stored in the VML shape with a shape ID of _x0000_s1028.

  • The associated VML <shape> element with an @id attribute value of _x0000_s1028 shall be used in place of the object whenever it is not loaded - this shape is typically, but is not required to be, stored in the same <pict> element as the corresponding <OLEObject> element. This shape specifies its desired size and provides an explicit relationship to the part which stores the image data.