2008-12-18 14 views
6

Wissen Sie, welche grundlegenden Informationen einen Absatz (<w:p/>) in document.xml in einem * .docx-Dokument enthalten müssen, das ein Bild angibt? Ich weiß, dass es sein muss:Word 2007, Open XML - Einbetten eines Bildes

<a:blip r:embed="rId4" /> 

Angabe der Beziehung ID, aber was noch? Es ist sehr schwer, es in Google zu finden und das Experimentieren mit dem Ausschneiden von Tags aus einem fertigen Dokument oder das Lesen der Spezifikation dauert sehr lange.

Ein Beispiel mit allen erforderlichen Tags würde sehr geschätzt werden.

+0

die Sache ist, ich muss ein Bild einbetten, aber ich möchte so wenig Daten wie möglich schreiben – agnieszka

Antwort

7

Word ist ziemlich wählerisch in Bezug auf die Eingabe XML zur Verfügung gestellt. Um ein Bild einzubetten, müssen Sie einige Informationen bereitstellen. Hier ist ein einfaches Beispiel:

document.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<w:document xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" 
      xmlns:v="urn:schemas-microsoft-com:vml" 
      xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" 
      xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> 
    <w:body> 
    <w:p> 
     <w:r> 
     <w:drawing> 
      <wp:inline distT="0" distB="0" distL="0" distR="0"> 
      <wp:extent cx="5943600" cy="3717290"/> 
      <wp:docPr id="1" name="Picture 0" descr="vlcsnap-325726.png"/> 
      <a:graphic xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"> 
       <a:graphicData uri="http://schemas.openxmlformats.org/drawingml/2006/picture"> 
       <pic:pic xmlns:pic="http://schemas.openxmlformats.org/drawingml/2006/picture"> 
        <pic:nvPicPr> 
        <pic:cNvPr id="0" name="myImage.png"/> 
        <pic:cNvPicPr/> 
        </pic:nvPicPr> 
        <pic:blipFill> 
        <a:blip r:embed="rId4"/> 
        <a:stretch> 
         <a:fillRect/> 
        </a:stretch> 
        </pic:blipFill> 
        <pic:spPr> 
        <a:xfrm> 
         <a:off x="0" y="0"/> 
         <a:ext cx="5943600" cy="3717290"/> 
        </a:xfrm> 
        <a:prstGeom prst="rect"> 
         <a:avLst/> 
        </a:prstGeom> 
        </pic:spPr> 
       </pic:pic> 
       </a:graphicData> 
      </a:graphic> 
      </wp:inline> 
     </w:drawing> 
     </w:r> 
    </w:p> 
    </w:body> 
</w:document> 

document.xml.rels

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> 
    <!-- other relationships go here --> 
    <Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="media/image1.png"/> 
</Relationships> 

Und natürlich muss das Bild an der richtigen Stelle (Medien zu dem Paket hinzugefügt werden/image1.png)

Da dies alles ziemlich kompliziert ist, würde ich Ihnen empfehlen, die OpenXML SDK 2.0 von Microsoft oder einer anderen Bibliothek, z OpenXML4J. Diese Bibliotheken, insbesondere die von Microsoft, können Ihnen die Arbeit erleichtern.