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
分享到:
相关推荐
jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1 jasperreport+ireport+jfreechart文档及代码1
jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2 jasperreport+ireport+jfreechart文档及代码2
Ireport中文不显示以及乱码十几种解决方案,百度上每种解决方案必定有属于你的哪一种问题。 独家整理、
ireport jfreechart 报表 录像
A Tutorial on JasperReports, iReport and JFreeChart
ireport 多图显示 ireport 多图显示 ireport 多图显示 ireport 多图显示
jasper+ireport+jfreechart导出html.excel.word.pdf,两种数据方式:数据库,list.图片路径完美解决,附带所有jar包,部署可用
Spring MVC整合IReport生成PDF及中文不显示、乱码解决
ireport控制分页显示,每页显示固定的记录条数
a tutorial on reporting in java using jasperreports, ireport abd jfreechart.pdf
在使用ireport制作报表时出现 PDF中文不显示问题,加上上面jar可以解决
ireport在html分页显示,主要是xml的编写和前端页面的代码...希望对你们有帮助
ireport jfreechart 圖表 欄位 linux 亂碼問題1
ireport宋体显示异常,加粗失效,字体变形,加入此jar即可解决
iReport是用于定义JasperReport报表的可视化工具,JasperReport使用XML来定义一个报表的结构,iReport可以让用户很方便地定义报表,而不需要手工去写这些XML文件。 iReport是为JasperReports设计的强大的,直观的,...
NULL 博文链接:https://achui-1980.iteye.com/blog/402927
ireport在html分页显示的jsp代码,本人花了好多天才弄出来的,绝对可以用!
SpringMVC与iReport整合开发时的PDF中文显示处理 SpringMVC与iReport整合开发时的PDF中文显示处理
iReport 还集成了JFreeChart图表制作包。允许用户可视化地编辑XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。它支持多种...