I've saw several posts lately about problems linking to images from reports. I thought I'd share this tip: I created a report that uses a couple of images to indicate the status of some automated services (running or not running) for a dashboard. I didn't want to mess with handling the images separate from the report, so I used this method to embed the images in the jrxml itself: 1) Base64 encode the image. I used the online utility at http://www.motobit.com/util/base64-decoder-encoder.asp Note that I have no ties to this site whatsoever, it's just something I found to be useful and it works. 2) In your report, create a variable of type String and set the variable expression to the Base64 encoded string from step 1 3) Put the image element in your report with class java.io.InputStream I also set scaling to retain shape. 4) For the image expression use: new java.io.StringBufferInputStream( new org.w3c.tools.codec.Base64Decoder($V{MY_IMAGE}).processString() ) The Base64 decoder class is included with JasperServer and is already on the classpath. I tested this successfully with image formats GIF, JPEG, PNG, and BMP. (I ended up using PNG by the way) I think it should also be possible to use class java.awt.Image (BufferedImage) created by ImageIO.load() from a byte array input stream, but this didn't work for me, even though using InputStream directly does. Thanks, Josh