- 浏览: 119569 次
- 性别:
- 来自: 成都
文章分类
如题,内嵌图片到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 = "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAApAKIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiuf8VeJ/8AhGf7E/0P7T/aeqwab/rdnleZu+foc429OM56igDoKKKKACiisfwv4jtPFnh221uxSVLW5MgjEoAbCOyZIBPXbn8aANiiuf8AF/ihfCul29wtlJe3d5dR2Vnao4Tzp3ztUseFHB5Naml3F5d6Xb3GoWP2C7kQGW184S+U3pvHDfUUAXKKKKACiiigAorH8QeI7Tw6umm6SVzqOoQ6fCIwDiSQnBOTwAATWxQAUUUUAFFY+n+I7TUvEms6HCkouNJEBndgApMqllC884A5+tV/Cvif/hJv7b/0P7N/Zmqz6b/rd/m+Xt+foMZ3dOcY6mgDoKKKKACiiigCG7uoLGznu7qVYreCNpZZG6IqjJJ9gBXn3xCvINWsPAN9YuZra58SafPC4UjdGVdg2DyOOeeleiyRpLG0cihkcFWU9CD1Fcfo/wANNF0XU7e8iu9WuI7Nt1jZ3V88lvaHaV/dofYnrn2xQBR8Jf8AJX/iL/3Df/RDVy2laVrGt+GPGlvocwEo8ZXUs0InMJuoQULRCReU3cc+2O9ega14D03Wta/tb7bqun3bosc7adevALhFzhZMdQM9sH3qK0+HGgWei6hpKLcm1vNRbUv9bseCYlSPKZACoXaMdT7mgDj/AAzpXhu01yPw9P4f13w4+pWdxCdOnvTLaXqlR5gDb2O5RzlSpwTV74D6Jp1j8OLTVra32X2pb/tcu9j5nlzSqnBOBgHHAGe9dN4f8B2Ghaiuoy6nrGr30aNHDcaremdoVbG4IMADO0c4z71b8L+EbDwjFdwabcXptJ5PMS1mm3xW3JJES4+UEkkjnmgDhvjF4W0bU9R8J395Z+ZdXWt2emTP5rjdbMZCyYBwMknkc+9Tp4b03xT401jwtq0Fx/YPh+ysoLCwFzIkcgdCTIcEM+3aqgkn7vrmu51/w3Z+I/7L+2STp/ZuoRahD5LAbpI87Q2QcrycgYPvVPxF4J07xFdJem71LTNRRPKF7pl0YJimc7SRkMOvUHGTigDyrxjLPZeAviP4aEtzPp2k3Fh9jmuJDIyrK8TtFuPJ2n1JI3D2r2PQ/DeneHlujYxyedeSeddTSys7TSYwWO4nH0GB7Vk3Xw60O68G3vhgG6itL11luJ1l3TyuHVtzO4bJJUDkdOBiusoA86+IEGj6jrtrp17ba3rd09mzrodhc+VD5e7BnlwynrhQSxHovU1S+E0txa+IPF2h/YbnTrGwktGttPuLn7Q1t5kbFlD7m4O0HGeM4611viLwRp3iPULfUXu9R0/UYI/JW8025MErRZ3GNmHVc849zil8N+B9J8K6lfX2mPeCS+RFuRPcGUSMhYhyWy275iOuPagDk/jLomnav/whv26383f4gt7JvnZcwzZ8xeCOuxeeoxwRzWf46jvj4l0fwTpfhy41XRbfSDL9gi1Q2ayhWEYDSHlwigfLnJ8wE9K9G8T+GLDxXpaWN89xEIpluIZ7aTZLDKudro2DgjJqvrPgzTtcsLKC5ub+O7sk2W+o29yY7pOACfMHUnAJyME84oA4/wAE6X4usJ9W05dBl8OaRLYEWKz6ot+ttcjgFed20gg7eg2f7Vc3b6NaeEkt73xPoOv6ZqMcsK3XiSx1Rp45WDKA8m5zhWOAQUPBxXquh+DNM0OO5/e3moXF1EIbi61K4aeWVBn5ST/DyeAAOayLf4WaNBcxb9T12506EoYdKuNRd7SPYQUwh5IBUYBJHtQBz/hHwtoy/G/xtfiz/wBK0+W2mtn81/3b3ELmY4zg7ix65xnjFdB8NrC8sf8AhLvtlpPb+f4lvJ4fOjKeZG2za656qcHBHBrZXwjYReMn8TwXF7BeTRiO5himxBc4XapkTHzFR0OeKv6VpX9l/bf9Pvrz7VdyXX+lzeZ5O7H7uPgbYxjhe2TQBoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/9k=";
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
就这么简单!!!
发表评论
-
eclipselink-DDL Schema Generation的四种方式
2016-10-12 00:17 563persistence.xml文件配置: < ... -
Java开发中的23种设计模式
2016-09-28 00:40 533设计模式(Design Patterns) ... -
ManyToOne 双向一对多关系
2016-08-05 01:38 499双向一对多关系,一是关系维护端(owner side),多是 ... -
理解RESTful架构
2016-06-22 00:33 553原文:http://www.ruanyifen ... -
foreach循环
2016-05-31 22:23 453这种有冒号的for循环叫做foreach循环,foreach语 ... -
java几种常用设计模式简单示例
2016-05-19 23:02 494PART A:前言 平常我们都在敲代码,为了要实现一些我们 ... -
iText PdfPCell内容水平垂直居中
2016-01-14 00:13 11821先调用Cell.setUseAscender(true);再调 ... -
深入理解 hash 函数、HashMap
2015-12-15 00:52 617http://www.2cto.com/kf/201409/3 ... -
iText的showTextAligned方法
2015-12-06 16:47 5384java使用itext的showTextAligned方法给 ... -
iText PdfTemplate的使用
2015-12-06 02:32 1376在开发系统时,需要在PDF上写入总页数。于是在网上搜索到 ... -
iText表格 分页
2015-11-30 23:31 5152前言 在上一节中,通过listing 4.16产生的表格拥 ... -
iText生成PDF文档部分页面横置
2015-11-27 02:02 5493整个PDF文档页面设置 Rectangle rect ... -
iText生成PDF格式设置
2015-11-27 00:52 2487import java.io.ByteArrayOutputS ... -
Spring中的IOC和AOP
2015-11-19 00:47 486IOC,依赖倒置的意思,所谓依赖,从程序的角度看,就是比如A要 ... -
【转载】纯Java获得本地MAC地址
2015-07-29 21:18 5751 import java.net.*; 2 3 clas ... -
Java笔试题
2014-05-25 21:53 5341. float型float f=3.4是否正 ... -
单例模式的常见应用场景
2014-05-25 21:30 822单例模式(Singleton)也叫单态模式,是设计模式中最 ... -
深入Java单例模式
2014-05-25 21:29 538在GoF的23种设计模式中,单例模式是比较简单的一种。然而 ... -
java 异常捕捉 ( try catch finally )
2014-05-25 21:15 545前言:java 中的异常处理机制你真的理解了吗?掌握了吗?c ... -
多线程的实现
2014-05-15 02:11 505http://www.cnblogs.com/rollenho ...
相关推荐
NULL 博文链接:https://achui-1980.iteye.com/blog/402927
SpringMVC+iReport生成二维码的案例
iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。本资源是MAC版本的iReport iReport-5.1.0-windows-installer MAC版
iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。 iReport的遵循AGPL自由开源协议,在SourceForge.net开源社区发布
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 报表、子报表、主从报表、合计、实例解析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 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。 iReport的遵循AGPL自由开源协议,在SourceForge.net开源社区发布 [1] 。 根据iReport和Jasper Studio的维护公告,自iReport版本...
iReport-5.1.0和iReport-5.6.0
使用iReport创建新Report的手顺。
iReport5.6.0已添加中文字体依赖
iReport汉化包. iReport.jar
iReport生成二维码的案例
ireport子报表嵌套.doc,文档主要描述了,ireport如何通过子报表技术实现一对多行数据展示问题
iReport-3.0.0源代码 iReport-3.0.0源代码 iReport-3.0.0源代码
ireport教程和iReport使用说明,学习报表开发,免费的开源报表工具。
IReport的多栏使用,IReport中的如何使用变量进行合计,iReport使用JavaBean做数据源 ,如何取得ireport报表当前页及总页数,更多内容...
这个工具允许用户可视化编辑包含charts,图片,子报表等的复杂报表。iReport 还集成了JFreeChart图 表制作包。允许用户可视化地编辑XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels...
ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解ireport子表详解