首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java的jasper报表中动态添加图片

如何在java的jasper报表中动态添加图片
EN

Stack Overflow用户
提问于 2012-11-26 19:27:01
回答 2查看 4.3K关注 0票数 2

大家好!我设计了一个贾斯珀报告,以出口到pdf格式,其中包含图像存储在我的本地machine.Now根据我的需要,我需要添加图像从项目类路径.Below我张贴我的code.plz的人帮助我如何动态添加图像...

代码语言:javascript
运行
复制
 File tempFile = File.createTempFile(getClass().getName(), ".pdf");
    try {
        FileOutputStream fos = new FileOutputStream(tempFile);
        try {
            ServletOutputStream servletOutputStream = response.getOutputStream();
            InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream("jasperpdf.jasper");
            try {
                String datum1 = request.getParameter("fromdate");
                String datum2 = request.getParameter("todate");
                SimpleDateFormat sdfSource = new SimpleDateFormat("dd-MM-yyyy");
                Date date = sdfSource.parse(datum1);
                Date date2 = sdfSource.parse(datum2);
                SimpleDateFormat sdfDestination = new SimpleDateFormat("yyyy-MM-dd");
                datum1 = sdfDestination.format(date);
                System.out.println(datum1);
                datum2 = sdfDestination.format(date2);
                System.out.println(datum2);

                String strQuery = "";
                ResultSet rs = null;

                conexion conexiondb = new conexion();
                conexiondb.Conectar();

                strQuery = "Select calldate,src,dst,duration,disposition,cdrcost from cdrcost where date(calldate) between '" + datum1 + "' and '" + datum2 + "'";

                rs = conexiondb.Consulta(strQuery);
                JRResultSetDataSource resultSetDataSource = new JRResultSetDataSource(rs);

                JasperRunManager.runReportToPdfStream(reportStream, fos, new HashMap(), resultSetDataSource);
                rs.close();
EN

回答 2

Stack Overflow用户

发布于 2013-06-12 00:39:37

当你提供了图像的相对路径时,它能正常工作吗?例如,在项目中应该有一个名为images/image.jpg的文件夹,里面应该有文件image.jpg。

票数 0
EN

Stack Overflow用户

发布于 2013-07-11 18:08:33

我是jasper report的新手,这段代码可能对你有用

代码语言:javascript
运行
复制
private static JRDesignImage getImage(int x_postion, int y_position, int width, int height,ScaleImageEnum scale_type, HorizontalAlignEnum align_type,
        JRDesignExpression expression) {
        JRDesignImage image = new JRDesignImage(null); 
        image.setX(0); 
        image.setY(8); 
        image.setWidth(97); 
        image.setHeight(50); 
        image.setScaleImage(ScaleImageEnum.RETAIN_SHAPE); 
        image.setHorizontalAlignment(HorizontalAlignEnum.LEFT);

        image.setExpression(expression); 
    // TODO Auto-generated method stub
    return image;
}

然后添加

代码语言:javascript
运行
复制
band = new JRDesignBand();
    band.setHeight(73);

    expression = new JRDesignExpression(); 
    expression.setValueClass(java.lang.String.class); 
    expression.setText("$P{imagePath}");
   // jasperDesign.addField();

    band.addElement(getImage(0,8,97,50,ScaleImageEnum.RETAIN_SHAPE,HorizontalAlignEnum.LEFT,expression)); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13563877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档