ireportjasperreport学习笔记

第一章初识JasperReports
一、Ireport中生成pdf中文字码显示,和自定义字体做法
1、自定义字体集(没成功,待研究)
net.ine.JRRuntimeException: Could not load the follow ing font :
pdfFontName  : STSong-Light
pdfEncoding  : UniGB-UCS2-H
isPdfEmbedded : true
at net.Font(JRPdfExpo rter.java:2117)
红狼牙鰕虎鱼开始发现这种自定方法可行,后头又不行了。在研究.但(已经解决,在使用itex和iTextAsianCmaps已经过时,解决方案使用ttf文件来进行自定义(ttf文件可在c盘下面去拷贝出来就可以了),使用方法见外面的网页资料/<;报表PDF导出字体完美解决方案.html>)
注意一:
有一点不一样,它是将那个fonts文件夹打成jar包,而我是将整个文件夹引入的
注意二:ttf文件最好是不要有中文
注意三:
在字体加载
后他会在安装目录下的Jaspersoft\iReport-5.6.0\ireport\fonts中添加ttf文件和更改配置信息,然后在工具-→选项—→classpath下面加入这个文件夹
世界纠结排行榜
所有要重新启动一次。在设置。
小结:现在在ireport中可以自定义字体,然后在预览和生成pdf中可以显示中文,到字体。下一步就是使用生成的report1.jasper文件在IDE中来进行项目集成。。
2、常规支持方案
最终解决方案:按照网上说的设置4个属性:
Font Name: 宋体(反正是支持中文显示的字体就可以)
Pdf font name: STSong-Light;
Pdf embedded:勾上(其实不打钩也可以)
pdf enccoding: UniGB-UCS2-H (Chinese Simplified)
查看IReport 工具的输出信息(跟java的system.out.print出来的信息一个类型,查看的地方也差不多),发现有报一个错:....... Could not load the following font ... ...
这个是因为没有到中文的jar包,这时如果你去网上辛辛苦苦到IText的中文包的话,你会耗费大量时间,且不一定成功,其实,安装完IReport 后,它默认就有两个支持中文的IText包啦,的目录是:Jaspersoft\iReport-4.5.1\ireport\modules\ext 下的iText-2.1.7.jar
和 iTextAsian.jar
九,将那两个包导入到IReport的ClassPath里面(web项目中直接引入jar包),点击确定,然后再打开,在Font页签上面能够看得到这两个包,就说明成功啦,然后重启IReport,就会发现一切都是那么美好啦,哈哈哈哈!
自定义的字体,等待后头研究。
二、使用jasperreports和irepoert生成的.jasper来实现pdf的生成
1、字体在项目中的引入
viewlab首先,选择你在使用ireport生成的.jasper选择的字体(自定义字体),现在需要把这个字体拿出来放在项目中,具体的使用方法.pdp
点击:
生成文件类型选择.jar或者.zip
名字fonts.jar这样将自己自定义且使用了的字体打成jar包,放在自己javaee使用的项目的lib中,把报表的.jasper也放在项目的响应位置,在程序中调用。
2、将自己制作做的静态报表在页面上用pdf的形式显示出来
.jrxml:是可视化编辑的xml文件;
.jasper:经编译后生成的类文件,即报表模板文件。
然后使用jasperreport就可以了:一下是打印在页面用pdf显示的servlet核心方法。
public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException
{  try
{  ServletOutputStream OutputStream();              InputStream reportStream = getServletConfig().getServletContext()
.
getResourceAsStream("report1.jasper");
JasperRunManager.runReportToPdfStream(reportStream,
servletOutputStream,new HashMap(), new JREmptyDataSource());
response.setContentType("application/pdf");
servletOutputStream.flush();
servletOutputStream.close();
}
3、利用程序将.jrxml导出为.jasper文件并用PDF显示
前面的章节是直接在Web项目中使用.jasper文件,其实在软件项目开发时,.jrxml文件
经常修改,而且.jrxml还要在项目中进行保留备份,所以较为流行的做法是在项目中使用.jrxml来生成.jasper文件,并用PDF文件显示出来
//获取当时要转为jasper文件的jrxml文件
{
//D:\apache-tomcat-6.0.41-windows-x64\apache-tomcat-6.0.41\webapps\testJasperreport\jrx ml\report1.jrxml
String ServletContext().getRealPath ("/")+
"jrxml\\report1.jrxml";
System.out.println(jrxmlSourcePath);
String jrxmlDestSourcePath =
///D:/apache-tomcat-6.0.41-windows-x64/apache-tomcat-6.0.41/webapps/testJasperreport/WEB-INF /classes/
System.out.println( Class().getClassLoader().getResource("").getPath());
/
timelase上的都好大/此句是在jrxml来生成.jasper文件编译报表,完成对报表的编译工作
海军总医院神经外科JasperCompileManagerpileReportToFile(jrxmlSourcePath,jrxmlDestSourcePath);
InputStream isRef = new FileInputStream(new File(jrxmlDestSourcePath));
ServletOutputStream sosRef = OutputStream();
response.setContentType("application/pdf");
JasperRunManager.runReportToPdfStream(isRef,sosRef,new HashMap(), new JREmptyDataSource());  sosRef.flush();        sosRef.close();
小结:在前面我们使用的只是html中显示的静态的pdf,在大多数的情况下,打印的数据来自于一些变量
三、填充报表数据
1、对参数进行填充打印到pdf到html
在JasperReports工具中传递数据并填充到报表只有两种方式,即使用Parameters参数和JRDataSour
ce数据源,而Parameters参数的使用方式就是从Servlet向报表传递参数,而JRDataSource数据源可以使用原始数据表中的数据在报表上进行显示。
这两种方式都可以通过Servlet进行传递。
∙Static Text: 靜態文字型態的文字類別,一般的整合開發工具或會稱為標籤(Label),就是固定不變的字串
∙Text Field: 文字欄位,為字串型態的文字類型,為合法的Java字串運算式,因此字串必須用雙引號括住
剛開始使用時經常會搞錯此二種型態,簡單的區分方法是:
∙在Static T ext的輸入視窗輸入文字時不用加雙引號(加了會出現在報表上)
∙Text Field的文字要加雙引號以符合Java語法
使用参数设置default value exception是使用java表达式来设置静态的值得。并且在使用Text Field的时候也必须对字体属性进行设置。和static text 一样的设置。
现在只是对一般的参数进行填充,一下通过javabean的方式来对对象属性进行填充。2、对对象内部属性进行填充
首先在项目中新建要填充的JRBeanCollectionDataSource对象。Userinfo类
然后把Userinfo.class的路径配置到iReport软件中,将workplace中的classes包引进来。

本文发布于:2024-09-23 02:28:13,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/363235.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   使用   字体   报表   文字   进行   项目   显示
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议