Page 1 of 1

Binding an image to a picture element

PostPosted: Sat Jan 15, 2011 2:29 am
by bmcompston
Hi All,

I have mastered binding text fields to text via the Content Control Toolkit and the docx4j library and I have added a Jpeg image to the documemnt as shown in the AddImage example. Is it possible to use the data binding mechanism to inject a jpeg image into a picture element field? The setNodeValueAtXpath() only accepts String as a data parameter.

Cheers

Brian

Re: Binding an image to a picture element

PostPosted: Sun Jan 16, 2011 9:03 pm
by jason
Word does allow you to bind a content control of type picture.

I used the OpenDoPE add-in to bind a content control of that type:

Code: Select all
   <w:sdt>
      <w:sdtPr>
        <w:id w:val="601046080"/>
        <w:dataBinding w:xpath="/yourxml/mypic" w:storeItemID="{37279FEE-C850-416C-80F3-8A915A6EF718}"/>
        <w:picture/>
      </w:sdtPr>
      <w:sdtContent>
        <w:p>
          <w:r>
            <w:drawing>
              <wp:inline distT="0" distB="0" distL="0" distR="0">
                <wp:extent cx="1524000" cy="1515470"/>
                <wp:effectExtent l="19050" t="0" r="0" b="0"/>
                <wp:docPr id="1" name="Picture 1"/>
                <wp:cNvGraphicFramePr>
                  <a:graphicFrameLocks xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" noChangeAspect="1"/>
                </wp:cNvGraphicFramePr>
                <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="Picture 1"/>
                        <pic:cNvPicPr>
                          <a:picLocks noChangeAspect="1" noChangeArrowheads="1"/>
                        </pic:cNvPicPr>
                      </pic:nvPicPr>
                      <pic:blipFill>
                        <a:blip r:embed="rId10" cstate="print"/>
                        <a:stretch>
                          <a:fillRect/>
                        </a:stretch>
                      </pic:blipFill>
                      <pic:spPr bwMode="auto">
                        <a:xfrm>
                          <a:off x="0" y="0"/>
                          <a:ext cx="1524000" cy="1515470"/>
                        </a:xfrm>
                        <a:prstGeom prst="rect">
                          <a:avLst/>
                        </a:prstGeom>
                        <a:noFill/>
                        <a:ln w="9525">
                          <a:noFill/>
                          <a:miter lim="800000"/>
                          <a:headEnd/>
                          <a:tailEnd/>
                        </a:ln>
                      </pic:spPr>
                    </pic:pic>
                  </a:graphicData>
                </a:graphic>
              </wp:inline>
            </w:drawing>
          </w:r>
        </w:p>
      </w:sdtContent>
    </w:sdt>


The resulting Custom XML part contains the image base64 encoded.

In order for docx4j to inject whatever base64 encoded image is there into the docx, our code would need some relatively minor modification. bind.xslt would need to invoke an image-aware version of the extension function, which creates an image part and modifies the sdtContent as necessary. It'd also ideally remove any obsolete existing image.

(Of course, this is not necessary if the docx is simply to be opened in Word. You only need docx4j to do the binding, if you then want to do something like create a PDF or HTML. )

Re: Binding an image to a picture element

PostPosted: Mon Jan 17, 2011 11:30 am
by jason
Implemented in http://dev.plutext.org/trac/docx4j/changeset/1390

Scaling the image correctly might need some work?

Also note that there is no code yet to remove any existing but now obsolete image parts.

Re: Binding an image to a picture element

PostPosted: Tue Jan 18, 2011 2:05 am
by kjetilhp
works great!

* read a file and do a Base64.encodeBase64
* add the string with setNodeValueAtXPath(..)
* do a xpathInjectImage
* and save...

Re: Binding an image to a picture element

PostPosted: Tue Jan 18, 2011 3:56 am
by kjetilhp
however, when placing a image content control thing in the header it doesn't work... the identical control bound in the main document are populated, even though I send the header as the source part to xpathInjectImage



Header:
Code: Select all
           
               <w:p>
                    <w:pPr>
                        <w:pStyle w:val="Header"/>
                        <w:tabs>
                            <w:tab w:val="clear" w:pos="4536"/>
                            <w:tab w:val="left" w:pos="6379"/>
                        </w:tabs>
                    </w:pPr>
                    <w:sdt>
                        <w:sdtPr>
                            <w:alias w:val="logo"/>
                            <w:tag w:val="logo"/>
                            <w:id w:val="54872844"/>
                            <w:showingPlcHdr/>
                            <w:dataBinding w:prefixMappings="xmlns:ns0='http://catch22.no'"
                                w:xpath="/ns0:doc[1]/ns0:logo[1]"
                                w:storeItemID="{C9F52019-7AF6-4391-8670-B5B7D7ADA18A}"/>
                            <w:picture/>
                        </w:sdtPr>
                        <w:sdtContent/>
                    </w:sdt>
                    <w:r>
                        <w:tab/>
                    </w:r>
                    <w:r>
                        <w:tab/>
                        <w:t>&lt;logo&gt;</w:t>
                    </w:r>
                </w:p>
                <w:p>
                    <w:pPr>
                        <w:pStyle w:val="Header"/>
                    </w:pPr>
                </w:p>



main doc
Code: Select all

                      <w:sdtPr>
                            <w:alias w:val="logo"/>
                            <w:tag w:val="logo"/>
                            <w:id w:val="55762251"/>
                            <w:dataBinding w:prefixMappings="xmlns:ns0='http://catch22.no'"
                                w:xpath="/ns0:doc[1]/ns0:logo[1]"
                                w:storeItemID="{C9F52019-7AF6-4391-8670-B5B7D7ADA18A}"/>
                            <w:picture/>
                        </w:sdtPr>


Re: Binding an image to a picture element

PostPosted: Tue Jan 18, 2011 12:45 pm
by jason
I tested it just now, and it works for me. Are you sure you are sending the correct header part?
If yes, check for exceptions, and that header part.getPackage() is not null

Re: Binding an image to a picture element

PostPosted: Tue Jan 18, 2011 10:59 pm
by kjetilhp
jason wrote:I tested it just now, and it works for me. Are you sure you are sending the correct header part?
If yes, check for exceptions, and that header part.getPackage() is not null


yes, I'm getting the default header and apply the other bindings on it with success,
also checked
Code: Select all
if (header.getPackage() == null) System.out.println("\n \t WARN! - header.getPackage is null \n");


as for warnings I get this: (regardless of what part I'm sending in..)
Code: Select all
18.01.2011 12:00:46 *DEBUG* Part: /ns0:doc[1]/ns0:logo[1] ---> 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 (XmlPart.java, line 135)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: created tmp file: /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img2566262154232819098.img (BinaryPartAbstractImage.java, line 190)
18.01.2011 12:00:47 *WARN * PreloaderSVG: Batik not in class path (PreloaderSVG.java, line 76)
java.lang.NoClassDefFoundError: org/apache/batik/bridge/UserAgent
   at org.apache.fop.image.loader.batik.PreloaderSVG.preloadImage(PreloaderSVG.java:69)
   at org.apache.xmlgraphics.image.loader.ImageManager.preloadImage(ImageManager.java:175)
   at org.apache.xmlgraphics.image.loader.cache.ImageCache.needImageInfo(ImageCache.java:128)
   at org.apache.xmlgraphics.image.loader.ImageManager.getImageInfo(ImageManager.java:122)
   at org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage.getImageInfo(BinaryPartAbstractImage.java:583)
   at org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage.ensureFormatIsSupported(BinaryPartAbstractImage.java:262)
   at org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage.createImagePart(BinaryPartAbstractImage.java:192)
   at org.docx4j.model.datastorage.BindingHandler.xpathInjectImage(BindingHandler.java:146)
   at com.doosy.app.CustomXmlBinding.main(CustomXmlBinding.java:157)
Caused by: java.lang.ClassNotFoundException: org.apache.batik.bridge.UserAgent
   at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
   ... 9 more


as for the rest of the log it seems that the image are added to the header correctly :/
Code: Select all
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img2566262154232819098.img image/png 91x33 (BinaryPartAbstractImage.java, line 636)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: Resolution:72x72 (BinaryPartAbstractImage.java, line 639)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: Print size: 1" x0" (BinaryPartAbstractImage.java, line 640)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: .. supported natively by Word (BinaryPartAbstractImage.java, line 289)
png
18.01.2011 12:00:47 *DEBUG* PartName: Trying to create part name /word/media/header1_image_rId2.png (PartName.java, line 151)
18.01.2011 12:00:47 *DEBUG* PartName: /word/media/header1_image_rId2.png part name created. (PartName.java, line 171)
18.01.2011 12:00:47 *INFO * Part: /word/media/header1_image_rId2.png (Part.java, line 132)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: created part org.docx4j.openpackaging.parts.WordprocessingML.ImagePngPart with name /word/media/header1_image_rId2.png (BinaryPartAbstractImage.java, line 214)
18.01.2011 12:00:47 *DEBUG* Part: reading input stream (BinaryPart.java, line 70)
18.01.2011 12:00:47 *DEBUG* Part: .. done (BinaryPart.java, line 73)
18.01.2011 12:00:47 *DEBUG* Part: closing binary input stream (BinaryPart.java, line 79)
18.01.2011 12:00:47 *INFO * Part: .. closed. (BinaryPart.java, line 81)
18.01.2011 12:00:47 *DEBUG* Part: Relativising target /word/media/header1_image_rId2.png against source /word/header1.xml (RelationshipsPart.java, line 487)
18.01.2011 12:00:47 *DEBUG* Part: Result media/header1_image_rId2.png (RelationshipsPart.java, line 506)
18.01.2011 12:00:47 *DEBUG* Part: Loading part /word/media/header1_image_rId2.png (RelationshipsPart.java, line 430)
18.01.2011 12:00:47 *DEBUG* Part: setPackage called for org.docx4j.openpackaging.parts.WordprocessingML.ImagePngPart (Part.java, line 167)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: .. deleted /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img2566262154232819098.img (BinaryPartAbstractImage.java, line 232)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: writableWidthTwips: 9072.0 (BinaryPartAbstractImage.java, line 732)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: imageWidthTwips: 1820.0 (BinaryPartAbstractImage.java, line 738)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: Scaling image - not necessary (BinaryPartAbstractImage.java, line 753)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: cx=1155700; cy=419100 (BinaryPartAbstractImage.java, line 760)
<doosy:doc xmlns:doosy="http://catch22.no" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://catch22.no/doosy.xsd">
  <doosy:docName>Den store planen</doosy:docName>
  <doosy:doknr>101</doosy:doknr>
  <doosy:projectName>Rehab av loftsleilighet</doosy:projectName>
  <doosy:projnr>p-11</doosy:projnr>
  <doosy:projectaddress>Bakkegata 43b</doosy:projectaddress>
  <doosy:projectStartDate>01.02.20011</doosy:projectStartDate>
  <doosy:projectStopDate>04.07.2011</doosy:projectStopDate>
  <doosy:customer>Big Builder AS</doosy:customer>
  <doosy:projectLead>K.Konradi</doosy:projectLead>
  <doosy:logo>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</doosy:logo>
</doosy:doc>
18.01.2011 12:00:47 *DEBUG* Part: /ns0:doc[1]/ns0:logo[1] ---> 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 (XmlPart.java, line 135)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: created tmp file: /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img4479313623294376760.img (BinaryPartAbstractImage.java, line 190)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img4479313623294376760.img image/png 91x33 (BinaryPartAbstractImage.java, line 636)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: Resolution:72x72 (BinaryPartAbstractImage.java, line 639)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: Print size: 1" x0" (BinaryPartAbstractImage.java, line 640)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: .. supported natively by Word (BinaryPartAbstractImage.java, line 289)
png
18.01.2011 12:00:47 *DEBUG* PartName: Trying to create part name /word/media/document_image_rId16.png (PartName.java, line 151)
18.01.2011 12:00:47 *DEBUG* PartName: /word/media/document_image_rId16.png part name created. (PartName.java, line 171)
18.01.2011 12:00:47 *INFO * Part: /word/media/document_image_rId16.png (Part.java, line 132)
18.01.2011 12:00:47 *DEBUG* BinaryPartAbstractImage: created part org.docx4j.openpackaging.parts.WordprocessingML.ImagePngPart with name /word/media/document_image_rId16.png (BinaryPartAbstractImage.java, line 214)
18.01.2011 12:00:47 *DEBUG* Part: reading input stream (BinaryPart.java, line 70)
18.01.2011 12:00:47 *DEBUG* Part: .. done (BinaryPart.java, line 73)
18.01.2011 12:00:47 *DEBUG* Part: closing binary input stream (BinaryPart.java, line 79)
18.01.2011 12:00:47 *INFO * Part: .. closed. (BinaryPart.java, line 81)
18.01.2011 12:00:47 *DEBUG* Part: Relativising target /word/media/document_image_rId16.png against source /word/document.xml (RelationshipsPart.java, line 487)
18.01.2011 12:00:47 *DEBUG* Part: Result media/document_image_rId16.png (RelationshipsPart.java, line 506)
18.01.2011 12:00:47 *DEBUG* Part: Loading part /word/media/document_image_rId16.png (RelationshipsPart.java, line 430)
18.01.2011 12:00:47 *DEBUG* Part: setPackage called for org.docx4j.openpackaging.parts.WordprocessingML.ImagePngPart (Part.java, line 167)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: .. deleted /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img4479313623294376760.img (BinaryPartAbstractImage.java, line 232)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: writableWidthTwips: 9072.0 (BinaryPartAbstractImage.java, line 732)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: imageWidthTwips: 1820.0 (BinaryPartAbstractImage.java, line 738)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: Scaling image - not necessary (BinaryPartAbstractImage.java, line 753)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: cx=1155700; cy=419100 (BinaryPartAbstractImage.java, line 760)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc[1]/ns0:logo[1] ---> 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 (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: created tmp file: /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img8704206992474738625.img (BinaryPartAbstractImage.java, line 190)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img8704206992474738625.img image/png 91x33 (BinaryPartAbstractImage.java, line 636)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: Resolution:72x72 (BinaryPartAbstractImage.java, line 639)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: Print size: 1" x0" (BinaryPartAbstractImage.java, line 640)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: .. supported natively by Word (BinaryPartAbstractImage.java, line 289)
png
18.01.2011 12:00:48 *DEBUG* PartName: Trying to create part name /word/media/header1_image_rId3.png (PartName.java, line 151)
18.01.2011 12:00:48 *DEBUG* PartName: /word/media/header1_image_rId3.png part name created. (PartName.java, line 171)
18.01.2011 12:00:48 *INFO * Part: /word/media/header1_image_rId3.png (Part.java, line 132)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: created part org.docx4j.openpackaging.parts.WordprocessingML.ImagePngPart with name /word/media/header1_image_rId3.png (BinaryPartAbstractImage.java, line 214)
18.01.2011 12:00:48 *DEBUG* Part: reading input stream (BinaryPart.java, line 70)
18.01.2011 12:00:48 *DEBUG* Part: .. done (BinaryPart.java, line 73)
18.01.2011 12:00:48 *DEBUG* Part: closing binary input stream (BinaryPart.java, line 79)
18.01.2011 12:00:48 *INFO * Part: .. closed. (BinaryPart.java, line 81)
18.01.2011 12:00:48 *DEBUG* Part: Relativising target /word/media/header1_image_rId3.png against source /word/header1.xml (RelationshipsPart.java, line 487)
18.01.2011 12:00:48 *DEBUG* Part: Result media/header1_image_rId3.png (RelationshipsPart.java, line 506)
18.01.2011 12:00:48 *DEBUG* Part: Loading part /word/media/header1_image_rId3.png (RelationshipsPart.java, line 430)
18.01.2011 12:00:48 *DEBUG* Part: setPackage called for org.docx4j.openpackaging.parts.WordprocessingML.ImagePngPart (Part.java, line 167)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: .. deleted /var/folders/LY/LYdgKvngH6Ova2dijaZTNU+++TI/-Tmp-/img8704206992474738625.img (BinaryPartAbstractImage.java, line 232)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: writableWidthTwips: 9072.0 (BinaryPartAbstractImage.java, line 732)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: imageWidthTwips: 1820.0 (BinaryPartAbstractImage.java, line 738)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: Scaling image - not necessary (BinaryPartAbstractImage.java, line 753)
18.01.2011 12:00:48 *DEBUG* BinaryPartAbstractImage: cx=1155700; cy=419100 (BinaryPartAbstractImage.java, line 760)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:docName[1] ---> Den store planen (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:doknr[1] ---> 101 (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:projectName[1] ---> Rehab av loftsleilighet (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:projnr[1] ---> p-11 (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:projectaddress[1] ---> Bakkegata 43b (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:projectLead[1] ---> K.Konradi (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:customer[1] ---> Big Builder AS (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:projectStartDate[1] ---> 01.02.20011 (XmlPart.java, line 135)
18.01.2011 12:00:48 *DEBUG* Part: /ns0:doc/ns0:projectStopDate[1] ---> 04.07.2011 (XmlPart.java, line 135)

Re: Binding an image to a picture element

PostPosted: Wed Jan 19, 2011 11:17 pm
by jason
For the benefit of anyone else reading this thread, the problem is that the extension function wraps the image in a w:p, and this doesn't work for an sdt which is already nested in a w:p (as the picture content control in this case was).

I'll modify the code to fix this.

Re: Binding an image to a picture element

PostPosted: Thu Jan 27, 2011 7:07 pm
by jason

Re: Binding an image to a picture element

PostPosted: Wed Feb 02, 2011 10:58 pm
by bmcompston
Hi again...

After serveral battles with maven and svn I have managed to compile the new version. Could kjetilhp or anyone else supply me with a snippit of code to show me how to use the new function - I'm a bit confused as to how to use it.

Thanks

Brian

Re: Binding an image to a picture element

PostPosted: Wed Feb 02, 2011 11:07 pm
by kjetilhp
a limited snippet...

Code: Select all
CustomXmlDataStoragePart customXmlDataStoragePart = wordMLPackage.getCustomXmlDataStorageParts().get(itemId01);
        CustomXmlDataStorage customXmlDataStorage = customXmlDataStoragePart.getData();

        try {
            ((CustomXmlDataStorageImpl) customXmlDataStorage).
                    setNodeValueAtXPath("/ns0:doc/ns0:doknr[1]",
                            "101",
                            "xmlns:ns0='http://catch22.no'");


        } catch (Docx4JException e) {
            log.error(e);
        }
        try {
            ((CustomXmlDataStorageImpl) customXmlDataStorage).
                    setNodeValueAtXPath("/ns0:doc[1]/ns0:logo[1]",
                            getBase64encodedImage(dir + "logo.png"),
                            "xmlns:ns0='http://catch22.no'");
        } catch (Exception e) {
            log.error(e);
        }

        DocumentFragment df = xpathInjectImage(wordMLPackage,
                header,
                wordMLPackage.getCustomXmlDataStorageParts(),
                itemId01,
                "/ns0:doc[1]/ns0:logo[1]",
                "xmlns:ns0='http://catch22.no'", "tr");

Re: Binding an image to a picture element

PostPosted: Thu Feb 03, 2011 8:47 am
by jason
or, to have all the work done for you by BindingHandler, use BindingHandler.applyBindings:

Code: Select all
        CustomXmlDataStoragePart customXmlDataStoragePart =        wordMLPackage.getCustomXmlDataStorageParts().get(itemId01);
        CustomXmlDataStorage customXmlDataStorage = customXmlDataStoragePart.getData();

        try {
            ((CustomXmlDataStorageImpl) customXmlDataStorage).
                    setNodeValueAtXPath("/ns0:doc[1]/ns0:logo[1]",
                            getBase64encodedImage(dir + "logo.png"),
                            "xmlns:ns0='http://catch22.no'");
        } catch (Exception e) {
            log.error(e);
        }

   BindingHandler.applyBindings(wordMLPackage.getMainDocumentPart());


this calls xpathInjectImage as an extension function from the xslt.

Re: Binding an image to a picture element

PostPosted: Thu Feb 03, 2011 9:15 pm
by bmcompston
Thanks guys for all your help. It was the leap on how to call the xpathInjectImage link that I couldn't work out.

Will this change be incorporated into a new release in the near future?

Brian

Re: Binding an image to a picture element

PostPosted: Tue Feb 08, 2011 3:58 am
by antoine
Hi,

I'm wondering how you bind a picture control using the OpenDoPE add-in? I tried to insert an image and click on "Bind this text" but I get an error message saying that this using text control is not allowed around a picture. What is the right way to this?

Thanks for any advice.
Cheers,
Antoine

Re: Binding an image to a picture element

PostPosted: Tue Feb 08, 2011 9:16 am
by jason
On the Word 2007 developer tab, click the "picture content control" to insert one of those.

Then in the OpenDoPE task pane on the right hand side, click "bind this..."

The document will show "The image cannot be displayed" unless/until you put correctly encoded image content into the XML element you bound. You don't have to do that straight away; you can do it later, programmatically, if you wish.

Re: Binding an image to a picture element

PostPosted: Tue Feb 08, 2011 10:41 pm
by antoine
Thanks for the quick answer!
It works fine with the generated docx.

Now I'm trying to export the document as PDF using the viaXSLFO.Conversion and before doing so I use OpenDoPEHandler.preprocess and BindingHandler.applyBindings to let docx4j handle the bindings. Unfortunately it looks like this action corrupts the document (word complains about the generated docx, but can still open it) and the image does not appear in the document, netiher in the docx nor the pdf file.

Any idea about this? Is this supported by docx4j?

Thanks.

Re: Binding an image to a picture element

PostPosted: Tue Feb 08, 2011 10:56 pm
by jason
Are you using svn code r1395 or later? This won't work with docx4j v2.6.0 release.

If so, can you post (zipped up) or send me the docx you are trying to export as PDF.

Re: Binding an image to a picture element

PostPosted: Wed Feb 09, 2011 1:24 am
by antoine
OK, updated to r1421 and this works nicely now! Thanks!

BTW, it might be a dumb question, but I'm surprised that you don't use a "2.6.0-SNAPSHOT" maven version in the trunk? This would be easier for testing development versions; non-snapshots are usually not meant to get updated by maven.