`

iReport内嵌图片

 
阅读更多

如题,内嵌图片到iReport内

 

1。通过以下代码,将图片文件转化为 Base64 字串

     (也可以自己在通过网上的一些免费工具进行转化)

========================================================================

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class TestClass {

 /**
  * @param args
  */
 public static void main(String[] args) {
  String strImg = "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";
  GenerateImage(strImg, "D:\\temp\\testOut.jpg");

        System.out.println(GetImageStr("D:\\temp\\testImage.jpg"));
 }

 public static String GetImageStr(String imgFilePath) {
        byte[] data = null;
       
        // 读取图片字节数组
        try {
            InputStream in = new FileInputStream(imgFilePath);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
       
        // 对字节数组Base64编码
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);// 返回Base64编码过的字节数组字符串
    }

 public static boolean GenerateImage(String imgStr, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片
        if (imgStr == null) // 图像数据为空
            return false;
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // Base64解码
            byte[] bytes = decoder.decodeBuffer(imgStr);
//            for (int i = 0; i < bytes.length; ++i) {
//                if (bytes[i] < 0) {// 调整异常数据 (测试发现没有这个调整,图片出来也是没有问题的)
//                 System.out.println("bytes[" + i + "]:" + bytes[i]);
//                    bytes[i] += 256;
//                }
//            }
            // 生成图片
            OutputStream out = new FileOutputStream(imgFilePath);
            out.write(bytes);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }
}

========================================================================

 

2。添加一个参数(Parameter),属性定义如下:

    Name: PAR_IMAGE_BASE64
    Parameter Class: java.lang.String
    Default Value Expression: "Base64字串"

 

3。添加一个图片(Image)元素,属性定义如下:

    Image Expression: javax.imageio.ImageIO.read(new ByteArrayInputStream(new org.apache.commons.codec.binary.Base64().decodeBase64($P{PAR_IMAGE_BASE64}.getBytes("UTF-8"))))

 

    Expression Class: java.awt.Image

 

就这么简单!!!

分享到:
评论

相关推荐

    Ireport Excel带图片导出之可拉伸图片不失真

    NULL 博文链接:https://achui-1980.iteye.com/blog/402927

    SpringMVC+iReport生成二维码的案例

    SpringMVC+iReport生成二维码的案例

    iReport-5.1.0.dmg iReport MAC版

    iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。本资源是MAC版本的iReport iReport-5.1.0-windows-installer MAC版

    iReport5.6版本。加iReport下载地址

    iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。 iReport的遵循AGPL自由开源协议,在SourceForge.net开源社区发布

    iReport-4.5.1.zip

    iReport-4.5.1.zip 工具包,由于上传文件大小受限,先传除ireport文件夹之外的文件,ireport文件夹将作为另外一个资源上传,资源名称为iReport-4.5.1 ireport.zip 同时下载iReport-4.5.1.zip和iReport-4.5.1 ireport...

    ireport 多图显示

    ireport 多图显示 ireport 多图显示 ireport 多图显示 ireport 多图显示

    ireport软件

    ireport软件纯净版下载ireport软件纯净版下载ireport软件纯净版下载ireport软件纯净版下载ireport软件纯净版下载ireport软件纯净版下载ireport软件纯净版下载ireport软件纯净版下载ireport软件纯净版下载

    iReport 报表、子报表、主从报表、合计、实例解析

    iReport 报表、子报表、主从报表、合计、实例解析1. 开发使用步骤(iReport4.1)... 2 4.1. JasperReport 和iReport的介绍... 2 4.1.1. JasperReport 简介... 3 4.1.2. iReport 简介... 3 4.1.2.1. iReport几个重要...

    ireport 4.0.2安装版

    iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。 iReport的遵循AGPL自由开源协议,在SourceForge.net开源社区发布 [1] 。 根据iReport和Jasper Studio的维护公告,自iReport版本...

    iReport-5.1.0和iReport-5.6.0

    iReport-5.1.0和iReport-5.6.0

    iReport安装环境介绍

    使用iReport创建新Report的手顺。

    iReport-5.6.0.rar

    iReport5.6.0已添加中文字体依赖

    iReport汉化包

    iReport汉化包. iReport.jar

    iReport生成二维码的案例

    iReport生成二维码的案例

    ireport子报表嵌套

    ireport子报表嵌套.doc,文档主要描述了,ireport如何通过子报表技术实现一对多行数据展示问题

    ireport源代码 iReport-3.0.0-src.zip

    iReport-3.0.0源代码 iReport-3.0.0源代码 iReport-3.0.0源代码

    ireport教程,iReport使用说明

    ireport教程和iReport使用说明,学习报表开发,免费的开源报表工具。

    iReport总结(吐血推荐)

    IReport的多栏使用,IReport中的如何使用变量进行合计,iReport使用JavaBean做数据源 ,如何取得ireport报表当前页及总页数,更多内容...

    ireport5.5.2

    这个工具允许用户可视化编辑包含charts,图片,子报表等的复杂报表。iReport 还集成了JFreeChart图 表制作包。允许用户可视化地编辑XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels...

    ireport子表详解

    ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解

Global site tag (gtag.js) - Google Analytics