- 浏览: 123635 次
- 性别:
- 来自: 成都
-
文章分类
如题,内嵌图片到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
就这么简单!!!
发表评论
-
eclipselink-DDL Schema Generation的四种方式
2016-10-12 00:17 591persistence.xml文件配置: < ... -
Java开发中的23种设计模式
2016-09-28 00:40 575设计模式(Design Patterns) ... -
ManyToOne 双向一对多关系
2016-08-05 01:38 530双向一对多关系,一是关系维护端(owner side),多是 ... -
理解RESTful架构
2016-06-22 00:33 581原文:http://www.ruanyifen ... -
foreach循环
2016-05-31 22:23 497这种有冒号的for循环叫做foreach循环,foreach语 ... -
java几种常用设计模式简单示例
2016-05-19 23:02 539PART A:前言 平常我们都在敲代码,为了要实现一些我们 ... -
iText PdfPCell内容水平垂直居中
2016-01-14 00:13 11913先调用Cell.setUseAscender(true);再调 ... -
深入理解 hash 函数、HashMap
2015-12-15 00:52 656http://www.2cto.com/kf/201409/3 ... -
iText的showTextAligned方法
2015-12-06 16:47 5552java使用itext的showTextAligned方法给 ... -
iText PdfTemplate的使用
2015-12-06 02:32 1442在开发系统时,需要在PDF上写入总页数。于是在网上搜索到 ... -
iText表格 分页
2015-11-30 23:31 5260前言 在上一节中,通过listing 4.16产生的表格拥 ... -
iText生成PDF文档部分页面横置
2015-11-27 02:02 5578整个PDF文档页面设置 Rectangle rect ... -
iText生成PDF格式设置
2015-11-27 00:52 2560import java.io.ByteArrayOutputS ... -
Spring中的IOC和AOP
2015-11-19 00:47 523IOC,依赖倒置的意思,所谓依赖,从程序的角度看,就是比如A要 ... -
【转载】纯Java获得本地MAC地址
2015-07-29 21:18 6111 import java.net.*; 2 3 clas ... -
Java笔试题
2014-05-25 21:53 5831. float型float f=3.4是否正 ... -
单例模式的常见应用场景
2014-05-25 21:30 882单例模式(Singleton)也叫单态模式,是设计模式中最 ... -
深入Java单例模式
2014-05-25 21:29 591在GoF的23种设计模式中,单例模式是比较简单的一种。然而 ... -
java 异常捕捉 ( try catch finally )
2014-05-25 21:15 590前言:java 中的异常处理机制你真的理解了吗?掌握了吗?c ... -
多线程的实现
2014-05-15 02:11 531http://www.cnblogs.com/rollenho ...
相关推荐
标题 "Ireport Excel带图片导出之可拉伸图片不失真" 涉及到的是在使用IReport工具进行报表设计时,如何将带有图片的数据导出到Excel文件,并且在图片被拉伸时保持其清晰度和不失真的技术问题。在实际应用中,这通常...
在IT行业中,报表生成是数据分析和业务展示的重要环节,而`iReport`作为一个开源的Java报表工具,为开发者提供了设计和生成复杂报表的功能。本文将深入探讨`iReport`模板和自定义字体的使用,以及如何结合`...
iReport-5.1.0和iReport-5.6.0
iReport 制作复选框的方法 iReport 是一个功能强大的报表设计工具,它可以帮助开发者快速创建复杂的报表。今天,我们将学习如何在 iReport 中制作复选框,并探讨其背后的逻辑和实现原理。 标题解释 iReport 制作复...
iReport 子报表嵌套技术详解 iReport 子报表嵌套技术是 ireport 提供的一种高级功能,通过子报表技术我们可以创建复杂的报表,实现多对一的数据展示问题。在本文中,我们将通过 ireport 子报表技术,实现自有房产...
对于二维码的生成,我们可能需要创建一个包含二维码图片的模板。在模板设计中,可以使用JRDataSource来连接数据源,将SpringMVC提供的数据传递给报表。iReport支持多种二维码生成库,如ZXing(Zebra Crossing),它...
1. **报表设计**:IReport支持WYSIWYG(所见即所得)编辑,让用户可以像使用Word一样设计报表,包括表格、图表、文本、图片等元素。 2. **SQL支持**:内置的SQL编辑器允许用户直接编写和测试SQL查询,为报表提供...
用户可以通过这个界面添加表格、图表、文本、图片等元素,并调整它们的位置和样式。 2. **SQL支持**:iReport支持多种数据库,允许用户直接通过内置的SQL编辑器编写查询,获取数据来填充报表。这对于基于数据库的...
iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。本资源是MAC版本的iReport iReport-5.1.0-windows-installer MAC版
用户可以通过工具栏上的按钮添加和编辑各种元素,如文本字段、图片、图表和子报表。 2. **模板预览**:用户可以在设计过程中实时预览报表的外观,确保设计符合预期。预览功能支持打印预览和导出为多种格式,如PDF、...
iReport 是为JasperReports Library和JasperReports Server设计的报表可视化设计器。 iReport的遵循AGPL自由开源协议,在SourceForge.net开源社区发布
iReport是一款强大的报表开发工具,尤其在Java应用领域中被广泛应用。它允许开发者设计复杂的报表,包括表格、图表、文本和图像,支持多种数据源,如数据库、XML、JSON等。iReport是JasperReports库的配套设计工具,...
iReport是一款强大的开源报表设计工具,它主要用于创建复杂的SQL查询并将其转化为美观的报表。iReport 5.6.0是其一个重要的版本,尤其在中文支持方面做出了显著的改进,确保了在设计报表时可以顺利地使用中文字体,...
标题"Ireport"指的是开源报表设计工具iReport,它是一个用于创建JasperReports的图形化界面工具。iReport允许用户设计复杂的报表布局,包括表格、图表、文本框等元素,并能够与Java应用程序、Web应用程序以及数据库...
iReport是一款强大的报告设计工具,尤其在Java世界中广受欢迎,因为它可以与JasperReports库无缝集成,用于创建复杂的报表和图表。iReport 4.5.1是该软件的一个版本,它提供了一种免安装的下载方式,使得用户可以在...
iReport是一款功能强大的开源报表设计工具,主要用于创建和设计基于JasperReports的复杂报表。它以其用户友好的界面和丰富的特性集,深受Java开发者和数据分析师的喜爱。在本压缩包"iReport-5.0.0.rar"中,包含的是...
这两个标签暗示了内容可能涉及IReport的源代码层面,可能讲解了一些自定义或扩展IReport的技巧,同时也强调了IReport作为一个用于报表制作的实用工具。 【压缩包子文件的文件名称列表】:EmployeeInfo.jrxml、...
1. **图形化界面**:iReport提供了一个直观的拖放式用户界面,使得非程序员也能轻松创建复杂的报表布局,包括表格、图表、文本、图片等元素。 2. **SQL支持**:iReport支持多种数据库,允许用户通过SQL查询获取数据...
iReport 最全打印归纳 iReport 是一个基于 Java 语言编写的报表引擎,用户可以按照它制定的规则编写一个 XML 文件,生成各种格式的文件,包括 PDF、HTML、XML、XLS、CSV 等。iReport 是报表的设计部分,界面设计是...