联系方式

MSN:yaohao803@hotmail.com

个人统计

用户名: yaohao
等级: 初来乍到
威望: 267
积分: 1165
在线时间: 12 小时
日志总数: 163
评论数量: 115
访问次数: 440768
建立时间: 2005-12-23
RSS订阅       手机访问

文章搜索

文章列表

日志文章

2007年05月30日 22:00:53

使用jasperReport制作报表的若干问题

导入了iReport的三个包iReport.jar,itext-1.3.1.jar,jasperreports-1.3.3.jar,使用iReport制作了报表的xml 文件,需要使用application方式生成报表文件(pdf)。

jasperReport = JasperCompileManager
.compileReport("report/sellReport.xml");
jasperPrint = JasperFillManager.fillReport(jasperReport,
new HashMap(), new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(jasperPrint,
"report/sellSeport.pdf");

简单说明:首先编辑repot目录中的sellReport.xml文件,传入参数,生成sellSeport.pdf的报表

问题一:

net.sf.jasperreports.engine.JRException: Error compiling report java source files : D:\meidiCRM\sellReport_1180534875843_240913.java
 at net.sf.jasperreports.engine.design.JRJavacCompiler.compileClasses(JRJavacCompiler.java:93)
 at net.sf.jasperreports.engine.design.JRAbstractClassCompiler.compileUnits(JRAbstractClassCompiler.java:67)
 at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:190)
 at net.sf.jasperreports.engine.design.JRDefaultCompiler.compileReport(JRDefaultCompiler.java:105)
 at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:212)
 at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:145)
 at com.tianyu.util.RptUtil.main(RptUtil.java:51)

分析:无法编译成为sellReport.java文件,可能是JDK版本不同,下了一个版本低的iReport情况依旧,只有google一下,但是网上用application生成pdf报表的例子很少,不过工夫不负有心人,在一个德文的论坛中找到了答案,虽然不会德文,但是从前面几个回帖的简短性来看,估计也是冒似我们的“up”,“关注”之类的,不过后面还是有一位提出了正确的解决方案:

Il y a un jar présent dans le dossier d'install de jasper ireport à inclure en plus dans le classpath :
jdt-compiler-3.1.1.jar
呵呵,我看这段也不用解释了吧!
 
问题二:
net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font :
pdfFontName   : STSong-Light
pdfEncoding   : UniGB-UCS2-H
isPdfEmbedded : false
 at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:1488)
 at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1391)
 at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1374)
 at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:1731)
 at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:613)
 at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:577)
 at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:520)
 at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:306)
 at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:126)
 at com.tianyu.util.RptUtil.main(RptUtil.java:54)
 
这个问题见过很多次,由于iText原来的设计没有支持亚洲字体,所以后续制作了一个亚洲字体的包,导入就解决了!包名为iTextAsian.jar
 
OK,问题解决了,报表生成了!
 

Tags: jasperReport  

类别: 无分类 |  评论(0) |  浏览(6210) |  收藏
发表评论