|
|
Re: Newbie: Embed Image from URL [message #686043 is a reply to message #686039] |
Tue, 21 June 2011 13:50 |
|
Andreas,
You are adding the embedded image but you also have to add a image report item.
importPackage(Packages.javax.imageio);
importPackage(Packages.java.io);
importPackage(Packages.java.net);
importPackage(Packages.org.eclipse.birt.report.model.api);
importPackage(Packages.org.eclipse.birt.report.model.api.elements);
var myurl = URL("http://tomcat.apache.org/images/tomcat.gif");
var img = ImageIO.read(myurl);
bas = new ByteArrayOutputStream();
ImageIO.write(img, "gif", bas);
image = StructureFactory.createEmbeddedImage( );
image.setType( DesignChoiceConstants.IMAGE_TYPE_IMAGE_GIF );
image.setData( bas.toByteArray());
image.setName( "AttachmentTomcat" );
reportContext.getDesignHandle().addImage( image );
var elmfactory = reportContext.getDesignHandle().getElementFactory();
var image1 = elmfactory.newImage( "mylogo" );
image1.setImageName( "AttachmentTomcat" );
reportContext.getDesignHandle().getBody().add(image1);
Any reason you are not just using a url image?
Jason
|
|
|
|
|
|
|
|
|
Re: Newbie: Embed Image from URL [message #686623 is a reply to message #686517] |
Wed, 22 June 2011 15:56 |
|
The issue is the imgsrc value of tag is only evaluated when the text item is created not in the middle of the beforeFactory. Look at doing something like the following:
importPackage(Packages.javax.imageio);
importPackage(Packages.java.io);
importPackage(Packages.java.net);
importPackage(Packages.java.lang);
importPackage(Packages.org.apache.commons.codec.binary)
importPackage(Packages.java.lang);
importPackage(Packages.org.eclipse.birt.report.model.api);
importPackage(Packages.org.eclipse.birt.report.model.api.elements);
var myurl0 = "http://tomcat.apache.org/images/tomcat.gif";
var myurl1 = "http://www.google.com/intl/en_ALL/images/srpr/logo1w.png";
var myurl2 = "http://www.eclipse.org/eclipse.org-common/themes/Nova/images/eclipse.png";
reportDesignHandle = reportContext.getDesignHandle();
elementFactory = reportDesignHandle.getElementFactory();
for( i=0; i< 3; i++){
var urlstr = "";
if( i == 0){
urlstr = myurl0;
}else if( i == 1 ){
urlstr = myurl1;
}else if( i == 2 ){
urlstr = myurl2;
}
var nurl = new URL( urlstr );
var img = ImageIO.read(nurl);
var bas = new ByteArrayOutputStream();
ImageIO.write(img, "png", bas);
bas.flush();
var encodedimga = Base64.encodeBase64(bas.toByteArray());
var encodedimg = new String( encodedimga, "utf-8");
bas.close();
var imgsrc = "data:image/gif;base64,"+encodedimg+"\"";
var nText = elementFactory.newTextItem(null);
nText.setContentType(DesignChoiceConstants.TEXT_CONTENT_TYPE_HTML);
nText.setContent("<img src="+ imgsrc + " />");
reportDesignHandle.getBody().add(nText);
}
Jason
|
|
|
|
Powered by
FUDForum. Page generated in 0.04294 seconds