> Hi,
> Not for the moment. You can only replace an image anchored in a cell with MutableCell.setImage()
>
> Sylvain,
> ILM Informatique
Thanks for your reply.
I found a solution for my specific problem anyway. Will post it here,
'cause it might help someone else, who wants to insert/replace images
in ODT:
In your template, you have to insert an existing image as a
placeholder. Position and format it the way you want it to appear in
the final document.
Important: Name the image. This is done by selecting "Picture" from
the image's context menu, then choosing "Options" and setting the
field "Name".
final File outFile = new File("output.odt");
final String bcfile = "image.png";
final JavaScriptFileTemplate template = new
JavaScriptFileTemplate("template.odt");
final ODSingleXMLDocument ddoc = template.createDocument();
ddoc.getDescendantByName("draw:frame",
"pC_LSBarcode").setAttribute("href", "file:///" + bcfile,
Namespace.getNamespace("xlink", "
http://www.w3.org/1999/xlink")); //
adjust the String "pC-LSBarcode" to the name of the image you have set
in the template
ddoc.saveAs(outFile);
Note, that the image does _not_ get embedded into the output-file
(only a reference/link gets embedded); so you have to make sure, the
image-file is accessible under the url you've set in the code.
In fact, these files are not really "portable" (which is ok in my
case, 'cause I render PDFs from the files afterwards, where the images
get embedded; the odt is only kind of temp-file in my scenario).
Maybe you could encapsulate that code (or a similar solution) in a
method like JavaScriptFileTemplate.replaceImage in one of the
following releases?
Cheers,
Marc