Wednesday, January 23, 2013

How to image stream to jasper report ?

How to image stream to jasper report ?

It is very easy to pass image stream to jasper report pdf.

Steps are,

1) Convert the image to stream and set it in parameter ("logo")
2) In jrxml file , create a parameter with parameter class as "java.io.InputStream"
3) Place a image on the jrxml design, set "Image Expression" to $P{logo} and "Expression class" to java.lang.String

    @Test
    public void createPdfWithImageAsStream() {
        try {
            System.out.println("pdf report creation started .... ");

            String outFileNamePDF = "/Users/user/Tried/POC/
imageStreamToPdf/createPdfWithImageAsStream.pdf";
            new File(outFileNamePDF).
getParentFile().mkdirs();
            String containerJrxmlFile = "/Users/user/Tried/POC/
imageStreamToPdf/createPdfWithImageAsStream.jrxml";
           
            // pass logo as stream.
            Map<String, Object> parameters = new HashMap<String,Object>();
            File img = new File("/Users/user/Desktop/
wallpaper.jpg");
            InputStream fis = new FileInputStream(img);
            System.out.println("printnng")
;
            parameters.put("logo", fis);
           
            InputStream reportStream = new FileInputStream(
containerJrxmlFile);
            BufferedInputStream bufferedInputStream = new BufferedInputStream(
reportStream);
            JasperDesign jasperDesign = JRXmlLoader.load(
bufferedInputStream);
           
            JasperReport jasperReport = JasperCompileManager.
compileReport(jasperDesign);
            JasperPrint jasperPrint = JasperFillManager.fillReport(
jasperReport, parameters, new JREmptyDataSource());
           
            JRExporter exporter = new net.sf.jasperreports.engine.
export.JRPdfExporter();
            exporter.setParameter(
JRExporterParameter.OUTPUT_FILE_NAME, outFileNamePDF);
            exporter.setParameter(
JRExporterParameter.JASPER_PRINT, jasperPrint);
            exporter.exportReport();
           
            System.out.println("pdf report created .... ");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Happy coding :)

--
Thank you.


Regards,
Kaleeswaran.S

6 comments:

  1. I get an error to run the app. com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Not valid Byte 1 for the sequence UTF-8 of 1 bytes.

    ReplyDelete
  2. thank you by your post help me so much.

    ReplyDelete

  3. Instead of using Torrent websites or SkymoviesHD 2020, you should visit legal free movies downloading websites or

    OTT platforms such as Amazon Prime, Ullu, Netflix, Alt Balaji are also available where you can watch your favourite shows without any extra efforts.

    Visit more :- khatrimaza | Thank you

    coronavirus helpers
    | moviesflix | movierulz

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Below you will understand what is important, the idea provides one of the links with an exciting site: stream torrent movies

    ReplyDelete