iReport整合向量图形
来源:互联网 发布:淘宝历史价格查询 编辑:程序博客网 时间:2024/06/12 01:02
iReport整合向量图形 | |
---|---|
http://www.pcdog.com 2004-7-16 互联网 | |
笔者最近通过试用iReport并整合了打了向量图形的补丁后的JasperReports,发现iReport的功能和易用性接近商业化的报表工具。成为开源报表工具的首选。Svg补丁直接使用了iText对Java Graphics2D的wrap来实现pdf文件的svg图形。 iReport主页 JasperReports向量图形patch 补丁方式 通过svg-patch-src修补jasperreports cvs源码,编译后与iReport源码整合。笔者发现了少数中文和xml校验等问题,通过修改源码可以解决。所以建议iText,jasperreports,jfreechart,iReport都使用cvs源码。 中文问题 修改com.lowagie.text.pdf.DefaultFontMapper类的awtToPdf方法: BaseFont bf = null; try { bf = BaseFont.createFont( System.getProperty(“font.chinese.SIMYOU”),"D:/wiki/iReport-0.3.0/fonts/SIMYOU.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); } catch (DocumentException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } 在Linux平台上部署的时候需要修改jfreechart相应的字体。 iReport Chart iReport目前对chart支持很有限,不过通过image标签和scriptlet可以很好的嵌入jfreechart图形, 嵌入其它chart比如jcharts方法一样。 Scriptlet代码 public class ChartScriptlet extends JRDefaultScriptlet { /** * */ public void afterReportInit() throws JRScriptletException { Connection con=null; DefaultPieDataset pieDataset = new DefaultPieDataset(); try { Class.forName("oracle.jdbc.driver.OracleDriver"); System.out.println("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { con = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1.38:1521:ora8i", "user", "password"); String query = "select province.name as name,sum(bill.total) as total from province,bill,node where bill.node_id =node.id and node.province_id=province.id and bill.CREATE_TIME > to_date('2004-1-1','yyyy-MM-dd') group by province.name"; Statement stmt = con.createStatement(); // Submit a query, creating a ResultSet object ResultSet rs = stmt.executeQuery(query); while (rs.next()) { System.out.println(rs.getString("name")); pieDataset.setValue( rs.getString("name"), rs.getDouble("total")); } rs.close(); stmt.close(); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } JFreeChart chart = ChartFactory.createPieChart( "2004-1-1至今各省帐单数据统计图", pieDataset, true, true, false); JCommonDrawableWrapper chartWrapper = new JCommonDrawableWrapper(chart); this.setVariableValue("ChartImage", chartWrapper); BufferedImage image = chart.createBufferedImage(246, 303); this.setVariableValue("ChartImage2", image); } } 生成pdf 作为对比,笔者同时使用了svg和位图,svg在编辑模式下可以copy文本,并且放大显示后不会出现像那样位图模糊不清的情况。图形渲染质量和打印效果也非常好。 Example pdf下载 |
- iReport整合向量图形
- IReport整合Struts2
- structs整合ireport(japser)
- spring mvc整合ireport
- iReport 笔记(九) 打印图形
- Inkscape 向量图形编辑器
- Unity3D -- 图形 -- 向量运算
- Unity3D -- 图形 -- 向量运算
- 图形算法基础之向量
- ireport 和eclipse的整合导出
- struts整合ireport做报表---环境搭建
- SpringMVC与iReport(JasperReports) 整合开发实例教程
- SpringMVC与iReport(JasperReports) 5.6整合
- iReport整合web(Struts2)后台开发
- SpringMVC与iReport(JasperReports) 整合开发实例教程
- iReport
- iReport
- iReport
- 创建 JSP 2.0 标记文件
- Oracle8i中使用Java语言来开发存储过程[转贴]
- 增加SCO UNIX的最大虚终端号数目
- CHATTR命令详解
- Struts,MVC 的一种开放源码实现[转贴]
- iReport整合向量图形
- 收藏:学习使用SkyEye仿真
- 正则表达式学与练
- 椭球体和顶点之间的碰撞检测。
- 以目前的形势来看过年也肯定在写程序了
- 帮忙解释一下这个触发器,我怎么看不懂??
- JBuilder在中文环境中光标问题的解决方案
- 花样人生(转载)
- 彷徨