`
huanglppp
  • 浏览: 64658 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ireport3.1.2结合JFreeChart1.0.10能显示文字,但不显示图片

阅读更多
ireport3.1.2结合JFreeChart1.0.10显示不出图片
先生成jrxml,代码如下:
<?xml version="1.0" encoding="GBK"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report name" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" 
scriptletClass="com.todaysoft.openflex4j.security.producefunction.jasper.JFreeChartScriptlet" bottomMargin="20">
	<property name="ireport.scriptlethandling" value="2" />
	<property name="ireport.encoding" value="GBK" />
	<import value="java.util.*" />
	<import value="net.sf.jasperreports.engine.*" />
	<import value="net.sf.jasperreports.engine.data.*" />
<variable name="chart" class="net.sf.jasperreports.engine.JRRenderable"/>
	<background>
		<band/>
	</background>
	<title>
		<band height="58">
			<staticText>
				<reportElement x="90" y="12" width="298" height="35"/>
				<textElement textAlignment="Center">
					<font fontName="宋体" size="14" isBold="true"/>
				</textElement>
				<text><![CDATA[在Jasperreport中添加Jfreechart图形]]></text>
			</staticText>
		</band>
	</title>
	<pageHeader>
		<band/>
	</pageHeader>
	<columnHeader>
		<band/>
	</columnHeader>
	<detail>
		<band height="300">
			<image>
				<reportElement x="0" y="12" width="538" height="288"/>
				<imageExpression class="net.sf.jasperreports.engine.JRRenderable"><![CDATA[$V{chart}]]></imageExpression>
			</image>
		</band>
	</detail>
	<columnFooter>
		<band/>
	</columnFooter>
	<pageFooter>
		<band/>
	</pageFooter>
	<summary>
		<band/>
	</summary>
</jasperReport>


在写生成图片的类,代码哪下:
package com.todaysoft.openflex4j.security.producefunction.jasper;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.util.Rotation;

import net.sf.jasperreports.engine.JRDefaultScriptlet;
import net.sf.jasperreports.engine.JRScriptletException;
import net.sf.jasperreports.renderers.JCommonDrawableRenderer;


public class JFreeChartScriptlet extends JRDefaultScriptlet {
	public void afterReportInit() throws JRScriptletException {
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("Java", 40.2F);
		dataset.setValue("VB", 20.2F);
		dataset.setValue("C/C++", 17.5F);
		dataset.setValue("C#", 22.5F);
		dataset.setValue("Perl", 1.0F);
		
		JFreeChart chart = ChartFactory.createPieChart3D("各种语言使用率",
				dataset, true, true, false);
		
		PiePlot3D plot = (PiePlot3D)chart.getPlot();
		plot.setStartAngle(290);
		plot.setDirection(Rotation.CLOCKWISE);
		plot.setForegroundAlpha(0.5f);
		plot.setNoDataMessage("没有可显示的数据");
		
		this.setVariableValue("chart", new JCommonDrawableRenderer(chart));
	}
}


调用的类,代码如下:

package com.todaysoft.openflex4j.security.producefunction.jasper;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspWriter;

import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRHtmlExporter;
import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.j2ee.servlets.ImageServlet;

public class JFreeChartApp {
	@SuppressWarnings("deprecation")
	public void export(HttpServletRequest request, JspWriter writer)
			throws IOException, Exception {
		
		String reportSource;
		reportSource = request.getSession().getServletContext()
				.getRealPath("WEB-INF/jasper/jfreechart.jrxml");
		File parent = new File(reportSource).getParentFile();
		File child = new File(
				parent, "jfreechart.jasper");
		JasperCompileManager.compileReportToFile(reportSource, 
				child.getAbsolutePath());
		// 编译成.jasper文件
		
		if (!parent.exists())
			throw new JRRuntimeException(".jasper文件找不到,无法编译.");

		JasperReport jasperReport;

		jasperReport = (JasperReport) JRLoader.loadObject(child.getAbsolutePath());

		Map parameters = new HashMap();

		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
				parameters, new JREmptyDataSource());

		// 使用JRHtmlExproter导出Html格式
		JRHtmlExporter exporter = new JRHtmlExporter();

		(request.getSession()).setAttribute(
				ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,
				jasperPrint);

		exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
		exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, writer);
		exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI,
				"../OPENFLEX4J/image?image=");

		exporter.exportReport();
	}
}



JSP页面调用
<%@ page import="com.todaysoft.openflex4j.security.producefunction.jasper.*"%>
<%@ page contentType="text/html; charset=GBK"%>

<%
	JFreeChartApp jfreeChartApp = new JFreeChartApp();
	jfreeChartApp.export(request,out);
%>


运行后,能看到静态文本,但看不到图片,还有乱码,请各位大哥,大姐,指点下

  • 大小: 5.6 KB
分享到:
评论
2 楼 nopain_nogain 2009-03-16  
huanglppp 写道

今天看了下,原来我是通过struts2去做的,用了struts-jasperreport插件,没有在web.xml文件配置,jasperreport和jfreechart集成后,不能跟struts-jasperreport插件集成。。。 只能跟servlet,jsp集成。。。个人见解,,,望其他人指点 现在通过JSP能够得到想要的效果


你好,我把你的程序跑起来了,不过也是红X,请问你是怎么解决的,谢谢。
1 楼 huanglppp 2008-11-21  
今天看了下,原来我是通过struts2去做的,用了struts-jasperreport插件,没有在web.xml文件配置,jasperreport和jfreechart集成后,不能跟struts-jasperreport插件集成。。。

只能跟servlet,jsp集成。。。个人见解,,,望其他人指点
现在通过JSP能够得到想要的效果

相关推荐

    Ireport中文不显示以及乱码十几种解决方案

    在使用IReport设计报表时,有时会遇到中文不显示或者出现乱码的问题,这通常是由于字体设置、编码格式不匹配或系统环境配置不当等因素引起的。本文将详细解析这些问题的成因,并提供十几种可能的解决方案,帮助你...

    ireport jfreechart 报表 录像

    当这两者结合时,开发者能够利用iReport的报表设计功能和JFreeChart的图表渲染能力,制作出具有丰富图表的高质量报表。 在"ireport jfreechart 报表 录像"中,我们可以学习到以下关键知识点: 1. **iReport使用...

    jasperreport+ireport+jfreechart文档及代码1

    jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1

    jasperreport+ireport+jfreechart文档及代码2

    jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2

    A Tutorial on JasperReports, iReport and JFreeChart

    ### 教程:使用JasperReports、iReport与JFreeChart进行Java报表开发 #### 一、引言 本教程旨在介绍三个开源Java报表工具——JasperReports、iReport及JFreeChart的基本概念与实际应用。这三个工具在报表设计与...

    ireport控制分页显示

    在探讨“ireport控制分页显示”的主题时,我们深入解析如何在iReport设计工具中实现每页固定记录条数的分页显示功能。iReport是JasperReports的一部分,一个强大的开源报表工具,广泛用于Java应用程序中生成各种复杂...

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

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

    ireport jar包,可解决PDF不显示

    总的来说,"ireport jar包,可解决PDF不显示"这个问题的解决方案在于添加支持中文的jar包,这样ireport在生成PDF报表时就能正确显示中文内容,避免出现乱码或者无法显示的问题。对于使用ireport进行报表开发的开发者...

    a tutorial on reporting in java using jasperreports, ireport abd jfreechart.pdf

    ### 使用Java进行报告生成:JasperReports、iReport与JFreeChart详解 #### 一、报告的概念 报告是一种将输入的数据以美观格式呈现的方式。它不仅仅是简单地展示数据库中的数据,而是通过查询数据库并以易读的格式...

    ireport jfreechart 圖表 欄位 linux 亂碼問題1

    JFreeChart 使用的字体默认是 Arial,而在 Linux 系统下,默认的字体不支持中文字符,这导致了图表标题和标签中的中文字符无法正确显示。 解决方案 有多种方法可以解决这个问题: 1. 使用 winfont.jar winfont.jar...

    jasper+ireport+jfreechart导出html.excel.word.pdf

    在IT行业中,报表生成是企业级应用不可或缺的一部分,它能够帮助我们有效地展示和分析数据。JasperReports是一款强大的开源报表工具,它支持多种输出格式,包括HTML、Excel、Word和PDF。在这个主题中,我们将深入...

    ireport 多图显示

    本文将深入探讨如何在iReport中实现多图显示,这对于创建复杂的报表和数据分析至关重要。 首先,理解iReport的基础是关键。iReport允许用户通过图形化的界面设计动态的、交互式的报表。它支持多种数据源,包括...

    ireport宋体显示异常jar包

    ireport宋体显示异常,加粗失效,字体变形,加入此jar即可解决

    ireport在html分页显示

    通过以上介绍可以看出,iReport 结合 JasperReports 可以非常方便地实现 HTML 分页显示的功能。这不仅涉及到 XML 报告的设计、Java 后端代码的编写,还涉及到前端页面的展示。掌握这些技术对于开发高质量的企业级...

    IREPORT问题解决方法.doc

    否则,可能会导致报表中的线不能正确显示。 3. 字段、线高度的设置 在 IREPORT 中,设置字段、线高度时需要注意不要超过两条平行线之间的高度,高度减 2 就是实际高度。宽度也同样需要注意。 4. IREPORT 表达式 ...

    ireport在html分页显示的jsp代码

    【ireport在html分页显示的jsp代码】这个主题涉及到的是使用iReport工具来生成报表,并在HTML页面中实现分页显示的技术。iReport是一款开源的报表设计工具,它允许开发者使用Java、JasperReports库来创建复杂的报表...

    Spring MVC整合IReport生成PDF及中文不显示、乱码解决

    本篇文章将详细讲解如何在Spring MVC项目中整合IReport来生成PDF,并解决可能出现的中文不显示和乱码问题。 首先,我们需要了解Spring MVC的基本概念。Spring MVC是Spring框架的一部分,它提供了一个模型-视图-控制...

    iReport中文乱码问题解决

    通过以上步骤,你应该能解决iReport在生成PDF时的中文乱码问题。在处理这类问题时,关键在于理解和配置正确的编码、字体以及依赖库。如果仍然遇到问题,可以尝试查找更详细的错误日志或在线社区的解决方案,因为乱码...

    java生成二维码与iReport报表pdf中文显示包

    在这个“java生成二维码与iReport报表pdf中文显示包”中,我们主要关注两个关键知识点:Java生成二维码和使用iReport设计并显示中文报表。 首先,让我们深入了解Java生成二维码。二维码(Quick Response Code)是一...

    ireport 报表常见的问题解决方案

    3.1.2 每页显示*页 当需要在每一页底部显示当前页码和总页数时,可以使用 ireport 的页眉或页脚区域添加文本组件,并配置相应的表达式来动态显示页码信息。 3.1.3 当数据为 null 显示空 | 数据自动换行 在单元格...

Global site tag (gtag.js) - Google Analytics