`

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带图片导出之可拉伸图片不失真

    标题 "Ireport Excel带图片导出之可拉伸图片不失真" 涉及到的是在使用IReport工具进行报表设计时,如何将带有图片的数据导出到Excel文件,并且在图片被拉伸时保持其清晰度和不失真的技术问题。在实际应用中,这通常...

    ireport模板和自定义字体jar

    在IT行业中,报表生成是数据分析和业务展示的重要环节,而`iReport`作为一个开源的Java报表工具,为开发者提供了设计和生成复杂报表的功能。本文将深入探讨`iReport`模板和自定义字体的使用,以及如何结合`...

    iReport-5.1.0和iReport-5.6.0

    iReport-5.1.0和iReport-5.6.0

    ireport制作复选框的办法

    iReport 制作复选框的方法 iReport 是一个功能强大的报表设计工具,它可以帮助开发者快速创建复杂的报表。今天,我们将学习如何在 iReport 中制作复选框,并探讨其背后的逻辑和实现原理。 标题解释 iReport 制作复...

    ireport子报表嵌套

    iReport 子报表嵌套技术详解 iReport 子报表嵌套技术是 ireport 提供的一种高级功能,通过子报表技术我们可以创建复杂的报表,实现多对一的数据展示问题。在本文中,我们将通过 ireport 子报表技术,实现自有房产...

    SpringMVC+iReport生成二维码的案例

    对于二维码的生成,我们可能需要创建一个包含二维码图片的模板。在模板设计中,可以使用JRDataSource来连接数据源,将SpringMVC提供的数据传递给报表。iReport支持多种二维码生成库,如ZXing(Zebra Crossing),它...

    Ireport 的 JAR包

    1. **报表设计**:IReport支持WYSIWYG(所见即所得)编辑,让用户可以像使用Word一样设计报表,包括表格、图表、文本、图片等元素。 2. **SQL支持**:内置的SQL编辑器允许用户直接编写和测试SQL查询,为报表提供...

    iReport-2.0.5免安装版

    用户可以通过这个界面添加表格、图表、文本、图片等元素,并调整它们的位置和样式。 2. **SQL支持**:iReport支持多种数据库,允许用户直接通过内置的SQL编辑器编写查询,获取数据来填充报表。这对于基于数据库的...

    iReport-5.1.0.dmg iReport MAC版

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

    iReport-4.7.1.zip

    用户可以通过工具栏上的按钮添加和编辑各种元素,如文本字段、图片、图表和子报表。 2. **模板预览**:用户可以在设计过程中实时预览报表的外观,确保设计符合预期。预览功能支持打印预览和导出为多种格式,如PDF、...

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

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

    iReport-5.0.1-windows-installer.exe iReport报表开发工具

    iReport是一款强大的报表开发工具,尤其在Java应用领域中被广泛应用。它允许开发者设计复杂的报表,包括表格、图表、文本和图像,支持多种数据源,如数据库、XML、JSON等。iReport是JasperReports库的配套设计工具,...

    iReport-5.6.0.rar

    iReport是一款强大的开源报表设计工具,它主要用于创建复杂的SQL查询并将其转化为美观的报表。iReport 5.6.0是其一个重要的版本,尤其在中文支持方面做出了显著的改进,确保了在设计报表时可以顺利地使用中文字体,...

    Ireport

    标题"Ireport"指的是开源报表设计工具iReport,它是一个用于创建JasperReports的图形化界面工具。iReport允许用户设计复杂的报表布局,包括表格、图表、文本框等元素,并能够与Java应用程序、Web应用程序以及数据库...

    iReport-4.5.1.zip

    iReport是一款强大的报告设计工具,尤其在Java世界中广受欢迎,因为它可以与JasperReports库无缝集成,用于创建复杂的报表和图表。iReport 4.5.1是该软件的一个版本,它提供了一种免安装的下载方式,使得用户可以在...

    免费下载iReport-5.0.0.rar

    iReport是一款功能强大的开源报表设计工具,主要用于创建和设计基于JasperReports的复杂报表。它以其用户友好的界面和丰富的特性集,深受Java开发者和数据分析师的喜爱。在本压缩包"iReport-5.0.0.rar"中,包含的是...

    (三)Ireport制作报表(欢迎加群组http://jaspereport.group.iteye.com)

    这两个标签暗示了内容可能涉及IReport的源代码层面,可能讲解了一些自定义或扩展IReport的技巧,同时也强调了IReport作为一个用于报表制作的实用工具。 【压缩包子文件的文件名称列表】:EmployeeInfo.jrxml、...

    iReport-5.6.0-designer03

    1. **图形化界面**:iReport提供了一个直观的拖放式用户界面,使得非程序员也能轻松创建复杂的报表布局,包括表格、图表、文本、图片等元素。 2. **SQL支持**:iReport支持多种数据库,允许用户通过SQL查询获取数据...

    ireport最全打印归纳

    iReport 最全打印归纳 iReport 是一个基于 Java 语言编写的报表引擎,用户可以按照它制定的规则编写一个 XML 文件,生成各种格式的文件,包括 PDF、HTML、XML、XLS、CSV 等。iReport 是报表的设计部分,界面设计是...

Global site tag (gtag.js) - Google Analytics