-
jasperreport 插入图片问题5
jasperreport+ireport做报表处理logon(处理图片显示的问题)
我为用ireport做报表要把公司的logon加在报表里,我图片加在报表里用ireport(html和其他的方式)预览能都能看到图片,但是.jasper加到jsp页面上不显示图片了,问题是当我保存为PDF和world能看到logon,就在jsp里看不到图片。
设置图片是这样做的,我在ireport里设置了一个参数$P{mages}参数名为mages,参数的类型是数据流类型,在报表上放了一个图片框,图片框的路径不是得到图片的路径而是这个参数$P{mages}。是在jsp页面为这个个参数传入数据留,
String imageRead = request.getRealPath( "WEB-INF/logon.jpg ");//获得图片路径File imageFile = new File(imageRead);
InputStream imageIn = new FileInputStream(imageFile);//图片一个数据流
parameters.put( "logo ",imageIn);//获得为图片设置的参数,把图片传给这个参数
这样为图片参数传值的,整个程序不报错,只是在jsp里看不到图片的效果,保存为其他的格式能看见这个图片。在jsp里右击不显示的图片属性看到的路径是:http://localhost:8083/servlets/imagesdir=img_0_0_1
请大家多多帮助。2013年1月25日 16:05
1个答案 按时间排序 按投票排序
-
1、在web.xml中添加如下配置:
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>net.sf.jasperreports.j2ee.servlets.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageServlet</servlet-name>
<url-pattern>/servlets/image</url-pattern>
</servlet-mapping>
2、在调用程序中增加如下代码:
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");
全部调用程序如下:
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="net.sf.jasperreports.engine.util.*" %>
<%@ page import="net.sf.jasperreports.engine.export.*" %>
<%@ page import="net.sf.jasperreports.j2ee.servlets.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
// "/reports/test.jasper"是ireport编译后的报表文件
File reportFile = new File(application.getRealPath("/reports/test.jasper"));
if(!reportFile.exists())
throw new JRRuntimeException("报表绘制失败,找不到报表配置文件!");
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath());
String url ="jdbc:jtds:sqlserver://127.0.0.1/test";
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(url,"sa", "");
//null为无参数传入
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, null, conn);
JRHtmlExporter exporter = new JRHtmlExporter();
StringBuffer sbuffer = new StringBuffer();
session.setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE, jasperPrint);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image=");
exporter.exportReport();
%>2013年1月25日 16:19
相关推荐
标题“使用JasperReport输出image图像”涉及到的关键技术点是JasperReport的图像生成和导出功能。在描述中提到的场景是,一个项目需要在文档中添加可识别的元素,比如条形码,然后将包含这些元素的文档作为图像保存...
6. **图片(Images)**:可以插入静态图片或者根据表达式动态生成图片,如二维码、条形码等。 7. **样式和模板(Styles and Templates)**:JasperReport提供丰富的样式定义,可以自定义字体、颜色、边框等,还可以...
8. **Images**:介绍如何在报表中插入图片及其显示方式。 9. **Jasper**:展示分组分栏报表的制作过程,通过两次分组实现复杂的布局。 10. **JCharts**:类似Chart示例,但使用另一个开源API jCharts生成图形。 ...
- **图像(Image)**: 可以插入图片,支持动态加载。 - **子报表(Subreport)**: 在主报表中嵌入另一个报表,用于分组或显示详细信息。 - **图表(Chart)**: 可以根据数据生成各种图表,如柱状图、饼图、线图等。 ...
用户还可以将报表元素进行插入、选择和定位,以形成所需要的报表布局。此外,可以设置报表的属性,例如报表的布局和打印格式,并且可以使用不同的表达式语言,比如Java、Groovy或JavaScript,以在报表中实现更复杂的...
4. **图像(Images)**:可以插入图片到报表中。 5. **子报表(Subreports)**:在一个报表中嵌套另一个报表,用于处理复杂布局。 6. **分组(Groups)**:根据字段值进行数据分组,每个组可以有自己的页眉和页脚。 ...
6. **图片(Image)**:插入图片,可以动态加载或静态显示。 【数据绑定与填充】 1. **数据源(Datasource)**:报表的数据来源,可以是Java集合、数据库查询结果、XML文件等。 2. **表达式(Expression)**:在...
矢量图的绘制直观易用,而位图的插入则更加灵活,可以导入图片文件到报表中。 3. 数据源和自定义数据源:数据源是报表设计的关键,JasperReport支持多种数据源,包括JRDataSource接口实现的自定义数据源。在实际...
- **图像**:用于插入静态图片。 - **图表**:用于插入图表,如柱状图、折线图等。 - **表格**:用于展示数据集合。 - **列表**:用于展示单行数据。 - **3.1.2. 设置数据源** 在设计报表前,需要为iReport...
通过ireport,开发者可以创建复杂的数据表格、图表、文本、图片等多种元素的报表,并能灵活调整布局和样式。 jasperreport则是ireport的后端引擎,它负责解析ireport设计的模板,并根据数据源填充内容,生成最终的...
### jasperreport入门 #### 一、简介 JasperReports是一款开源报表工具,它能够将数据以直观的方式呈现出来,并支持多种数据源如JDBC、XML、CSV等。此外,JasperReports还提供了丰富的图表类型,包括条形图、折线...
- **图像**: 插入静态图片。 **4.2 使用链接** - **超链接**: 创建报表内的超链接,跳转到其他页面或外部资源。 **4.3 创建 SQL 查询语句** - **定义查询**: 使用 SQL 语句从数据源中提取数据。 **4.4 创建字段...
- 插入图片到报表中,支持多种图像格式。 ##### 5.9 文本元素: - 插入静态文本或文本域到报表中。 ##### 5.10 静态文本: - 插入固定的文本内容。 ##### 5.11 文本域: - 动态显示数据的文本区域。 ##### 5.12 ...
JasperReport提供了多种方法来实现这一点,包括直接插入图片资源、从数据库获取图像以及动态生成图像。 1. 直接插入图片资源: 在JasperReport的设计文件(.jrxml)中,我们可以使用`<image>`元素来插入图像。需要...
- **图片和图表**:IReport支持插入静态图片和动态图表,后者可以从数据源生成。 **4. JSP处理报表** 在Web应用中,通常使用JSP页面来调用JasperReport生成报表。`jsp处理报表部分(jasperreport).doc`文档可能...
报表设计者可以通过JasperReport的报表设计工具(如iReport)创建模板,然后在运行时动态填充数据并插入由JFreeChart生成的图表。 **JFreeChart简明教程.doc**: 这份文档可能详细介绍了JFreeChart的基本概念、安装...
6. **动态内容**:JasperReport支持动态插入图片、图表和其他复杂元素,可以根据数据的变化动态调整报表内容。 7. **Java API集成**:在Java应用中,可以通过JasperReport API来编译、填充和导出报表。例如,`...
6. **Image**:插入图片。 7. **Subreport**:嵌入子报表。 8. **Crosstab**:交叉表。 9. **Chart**:图表。 #### 四、使用iReport编辑简单报表 1. **编辑前的准备**: - 确保安装了iReport软件。 - 准备好...
- **图片**:插入图片到报表中,支持动态加载。 - **子报表**:嵌套其他报表,实现复杂结构。 7. **样式与样式表** iReport允许用户自定义报表的样式,包括字体、颜色、边框等。同时,可以通过导入CSS样式表来...