Adding Embedded Image to report at runtime
Options
<p>Hi,</p>
<p>I am trying to add an Embedded Image into my report design at runtime through my Java Class. I have successfully added it to the report design. But i am not able to use this image anywhere in the report . It throws an error telling that the "name is invalid". Below is my code.</p>
<p> </p>
<p> </p>
<p> public static void _addEmbeddedImage(ReportDesignHandle designHandle) throws IOException{<br>
EmbeddedImage embeddedImage = null;<br>
try{<br><br>
embeddedImage = new EmbeddedImage();<br>
embeddedImage.setName("logo.jpg");<br>
embeddedImage.setType(DesignChoiceConstants.IMAGE_TYPE_IMAGE_JPEG);<br>
embeddedImage.setData(_getImadeAsByteArr());<br><br><br>
designHandle.addImage(embeddedImage);<br>
}catch(Exception e){<br>
throw new IOException("Error while adding Embedded Image into the Report Design"+e.getMessage());<br>
}<br><br>
}<br>
public static byte[] _getImadeAsByteArr()throws IOException{<br>
String encodedImage = "";<br>
byte[] bytes = null;<br>
try{<br>
File imageFile = new File("C:/BIRT/Resources/logo.jpg");<br>
FileInputStream inputStream = new FileInputStream(imageFile);<br>
bytes = new byte[(int)imageFile.length()];<br><br>
}<br>
catch(Exception e){<br>
throw new IOException("Error while parsing Image File @_getEncodedString .. Error: "+e.getMessage());<br>
}<br>
return bytes;<br>
}</p>
<p> </p>
<p> </p>
<p> </p>
<p> public static void _addNewImage(URequestContext ctxt,IReportRunnable design)throws Exception{<br>
Object pageContents = null;<br>
Object imageContent = null;<br>
ReportDesignHandle designHandle = null;<br>
SlotHandle masterPageHandle = null;<br>
SlotHandle headerHandle = null;<br>
<br>
ImageHandle imageHandle = null; <br>
EmbeddedImageHandle embeddedImageHandle = null;<br>
ElementFactory factory = null;<br>
try {<br>
designHandle = (ReportDesignHandle)design.getDesignHandle();<br>
factory = designHandle.getElementFactory();<br>
_addEmbeddedImage(designHandle);<br>
//designHandle.save();<br>
masterPageHandle = designHandle.getMasterPages();<br>
Iterator masterPageIter = masterPageHandle.iterator();<br>
while(masterPageIter.hasNext()){<br>
SimpleMasterPageHandle pageHandle = (SimpleMasterPageHandle)masterPageIter.next();<br>
headerHandle = pageHandle.getPageHeader();<br>
Iterator headerSlotIter = headerHandle.iterator();<br>
if(!headerSlotIter.hasNext()){<br>
List imagesList = designHandle.getAllImages();<br>
Iterator imagesIter = imagesList.iterator();<br>
while(imagesIter.hasNext()){<br>
imageContent = imagesIter.next();<br>
if(imageContent instanceof EmbeddedImageHandle){<br>
embeddedImageHandle = (EmbeddedImageHandle)imageContent;<br>
imageHandle = factory.newImage(null);<br>
imageHandle.setSource(DesignChoiceConstants.IMAGE_REF_TYPE_EMBED);<br><br>
headerHandle.add(imageHandle);<br>
}<br>
}<br><br><br><br>
// headerHandle.add(imageHandle, headerHandle.getSlotID());<br>
}<br><br>
}<br><br>
} catch (Exception e) {<br>
logger.debug("Error while adding Embedded Image to report design.. "+e.getMessage());<br>
}<br>
finally{<br>
designHandle.save();<br>
designHandle.close();<br>
}<br>
}</p>
<p> </p>
<p> </p>
<p>Any help would really be appreciated.</p>
<p>I am trying to add an Embedded Image into my report design at runtime through my Java Class. I have successfully added it to the report design. But i am not able to use this image anywhere in the report . It throws an error telling that the "name is invalid". Below is my code.</p>
<p> </p>
<p> </p>
<p> public static void _addEmbeddedImage(ReportDesignHandle designHandle) throws IOException{<br>
EmbeddedImage embeddedImage = null;<br>
try{<br><br>
embeddedImage = new EmbeddedImage();<br>
embeddedImage.setName("logo.jpg");<br>
embeddedImage.setType(DesignChoiceConstants.IMAGE_TYPE_IMAGE_JPEG);<br>
embeddedImage.setData(_getImadeAsByteArr());<br><br><br>
designHandle.addImage(embeddedImage);<br>
}catch(Exception e){<br>
throw new IOException("Error while adding Embedded Image into the Report Design"+e.getMessage());<br>
}<br><br>
}<br>
public static byte[] _getImadeAsByteArr()throws IOException{<br>
String encodedImage = "";<br>
byte[] bytes = null;<br>
try{<br>
File imageFile = new File("C:/BIRT/Resources/logo.jpg");<br>
FileInputStream inputStream = new FileInputStream(imageFile);<br>
bytes = new byte[(int)imageFile.length()];<br><br>
}<br>
catch(Exception e){<br>
throw new IOException("Error while parsing Image File @_getEncodedString .. Error: "+e.getMessage());<br>
}<br>
return bytes;<br>
}</p>
<p> </p>
<p> </p>
<p> </p>
<p> public static void _addNewImage(URequestContext ctxt,IReportRunnable design)throws Exception{<br>
Object pageContents = null;<br>
Object imageContent = null;<br>
ReportDesignHandle designHandle = null;<br>
SlotHandle masterPageHandle = null;<br>
SlotHandle headerHandle = null;<br>
<br>
ImageHandle imageHandle = null; <br>
EmbeddedImageHandle embeddedImageHandle = null;<br>
ElementFactory factory = null;<br>
try {<br>
designHandle = (ReportDesignHandle)design.getDesignHandle();<br>
factory = designHandle.getElementFactory();<br>
_addEmbeddedImage(designHandle);<br>
//designHandle.save();<br>
masterPageHandle = designHandle.getMasterPages();<br>
Iterator masterPageIter = masterPageHandle.iterator();<br>
while(masterPageIter.hasNext()){<br>
SimpleMasterPageHandle pageHandle = (SimpleMasterPageHandle)masterPageIter.next();<br>
headerHandle = pageHandle.getPageHeader();<br>
Iterator headerSlotIter = headerHandle.iterator();<br>
if(!headerSlotIter.hasNext()){<br>
List imagesList = designHandle.getAllImages();<br>
Iterator imagesIter = imagesList.iterator();<br>
while(imagesIter.hasNext()){<br>
imageContent = imagesIter.next();<br>
if(imageContent instanceof EmbeddedImageHandle){<br>
embeddedImageHandle = (EmbeddedImageHandle)imageContent;<br>
imageHandle = factory.newImage(null);<br>
imageHandle.setSource(DesignChoiceConstants.IMAGE_REF_TYPE_EMBED);<br><br>
headerHandle.add(imageHandle);<br>
}<br>
}<br><br><br><br>
// headerHandle.add(imageHandle, headerHandle.getSlotID());<br>
}<br><br>
}<br><br>
} catch (Exception e) {<br>
logger.debug("Error while adding Embedded Image to report design.. "+e.getMessage());<br>
}<br>
finally{<br>
designHandle.save();<br>
designHandle.close();<br>
}<br>
}</p>
<p> </p>
<p> </p>
<p>Any help would really be appreciated.</p>
0
Comments
-
<p>Anybody??? This is a bit urgent</p>
0
Categories
- All Categories
- 111 Developer Announcements
- 49 Articles
- 103 General Questions
- 123 IM Services
- 40 OpenText Hackathon
- 31 Developer Tools
- 20.6K Analytics
- 4.1K AppWorks
- 8.9K Extended ECM
- 897 Cloud Fax and Notifications
- 77 Digital Asset Management
- 9.3K Documentum
- 29 eDOCS
- 123 Exstream
- 39.8K TeamSite
- 1.7K Web Experience Management
- 1 XM Fax