Word 2007, Open XML - Embed Image

Do you know what basic information SHOULD include a paragraph ( <w:p/> ) in document.xml inside the * .docx document that indicates the image? I know what should be:

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

setting the relationship identifier, but what else? It is very difficult to find it on Google and it takes a lot of time to experiment with cutting tags from a finished document or reading a specification.

An example with all the necessary tags is welcome.

+6
openxml drawingml wordprocessingml
source share
1 answer

The word is pretty legible regarding the input XML provided. In order to embed an image, you must provide enough information. Here is a simple example:

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> 

And, of course, the image should be added to the package in the right place (media / image1.png)

Since all this is quite complicated, I would recommend you use the OpenXML SDK 2.0 provided by Microsoft or another library, for example. OpenXML4J . These libraries, especially Microsoft, can make your work a lot easier.

+7
source share

All Articles