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
分享到:
相关推荐
在使用IReport设计报表时,有时会遇到中文不显示或者出现乱码的问题,这通常是由于字体设置、编码格式不匹配或系统环境配置不当等因素引起的。本文将详细解析这些问题的成因,并提供十几种可能的解决方案,帮助你...
当这两者结合时,开发者能够利用iReport的报表设计功能和JFreeChart的图表渲染能力,制作出具有丰富图表的高质量报表。 在"ireport jfreechart 报表 录像"中,我们可以学习到以下关键知识点: 1. **iReport使用...
jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1
jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2
### 教程:使用JasperReports、iReport与JFreeChart进行Java报表开发 #### 一、引言 本教程旨在介绍三个开源Java报表工具——JasperReports、iReport及JFreeChart的基本概念与实际应用。这三个工具在报表设计与...
在探讨“ireport控制分页显示”的主题时,我们深入解析如何在iReport设计工具中实现每页固定记录条数的分页显示功能。iReport是JasperReports的一部分,一个强大的开源报表工具,广泛用于Java应用程序中生成各种复杂...
标题 "Ireport Excel带图片导出之可拉伸图片不失真" 涉及到的是在使用IReport工具进行报表设计时,如何将带有图片的数据导出到Excel文件,并且在图片被拉伸时保持其清晰度和不失真的技术问题。在实际应用中,这通常...
总的来说,"ireport jar包,可解决PDF不显示"这个问题的解决方案在于添加支持中文的jar包,这样ireport在生成PDF报表时就能正确显示中文内容,避免出现乱码或者无法显示的问题。对于使用ireport进行报表开发的开发者...
### 使用Java进行报告生成:JasperReports、iReport与JFreeChart详解 #### 一、报告的概念 报告是一种将输入的数据以美观格式呈现的方式。它不仅仅是简单地展示数据库中的数据,而是通过查询数据库并以易读的格式...
JFreeChart 使用的字体默认是 Arial,而在 Linux 系统下,默认的字体不支持中文字符,这导致了图表标题和标签中的中文字符无法正确显示。 解决方案 有多种方法可以解决这个问题: 1. 使用 winfont.jar winfont.jar...
在IT行业中,报表生成是企业级应用不可或缺的一部分,它能够帮助我们有效地展示和分析数据。JasperReports是一款强大的开源报表工具,它支持多种输出格式,包括HTML、Excel、Word和PDF。在这个主题中,我们将深入...
本文将深入探讨如何在iReport中实现多图显示,这对于创建复杂的报表和数据分析至关重要。 首先,理解iReport的基础是关键。iReport允许用户通过图形化的界面设计动态的、交互式的报表。它支持多种数据源,包括...
ireport宋体显示异常,加粗失效,字体变形,加入此jar即可解决
通过以上介绍可以看出,iReport 结合 JasperReports 可以非常方便地实现 HTML 分页显示的功能。这不仅涉及到 XML 报告的设计、Java 后端代码的编写,还涉及到前端页面的展示。掌握这些技术对于开发高质量的企业级...
否则,可能会导致报表中的线不能正确显示。 3. 字段、线高度的设置 在 IREPORT 中,设置字段、线高度时需要注意不要超过两条平行线之间的高度,高度减 2 就是实际高度。宽度也同样需要注意。 4. IREPORT 表达式 ...
【ireport在html分页显示的jsp代码】这个主题涉及到的是使用iReport工具来生成报表,并在HTML页面中实现分页显示的技术。iReport是一款开源的报表设计工具,它允许开发者使用Java、JasperReports库来创建复杂的报表...
本篇文章将详细讲解如何在Spring MVC项目中整合IReport来生成PDF,并解决可能出现的中文不显示和乱码问题。 首先,我们需要了解Spring MVC的基本概念。Spring MVC是Spring框架的一部分,它提供了一个模型-视图-控制...
通过以上步骤,你应该能解决iReport在生成PDF时的中文乱码问题。在处理这类问题时,关键在于理解和配置正确的编码、字体以及依赖库。如果仍然遇到问题,可以尝试查找更详细的错误日志或在线社区的解决方案,因为乱码...
在这个“java生成二维码与iReport报表pdf中文显示包”中,我们主要关注两个关键知识点:Java生成二维码和使用iReport设计并显示中文报表。 首先,让我们深入了解Java生成二维码。二维码(Quick Response Code)是一...
3.1.2 每页显示*页 当需要在每一页底部显示当前页码和总页数时,可以使用 ireport 的页眉或页脚区域添加文本组件,并配置相应的表达式来动态显示页码信息。 3.1.3 当数据为 null 显示空 | 数据自动换行 在单元格...