iReport整合向量图形的使用心得
2008-01-05 09:57:17 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亜顒㈡い鎰Г閹便劌顫滈崱妤€骞婄紓鍌氬€瑰銊╁箟缁嬫鍚嬮柛顐線缂冩洟姊婚崒娆戭槮婵犫偓闁秵鎯為幖娣妼缁愭鏌″搴′簽濞戞挸绉甸妵鍕冀椤愵澀娌梺缁樻尪閸庣敻寮婚敐澶婂嵆闁绘劖绁撮崑鎾诲捶椤撴稑浜炬慨妯煎亾鐎氾拷

核心提示:补丁方式通过svg-patch-src修补jasperreports cvs源码,编译后与iReport源码整合,iReport整合向量图形的使用心得,笔者发现了少数中文和xml校验等问题,通过修改源码可以解决,中文问题修改com.lowagie.text.pdf.DefaultFontMapper类的awtToPdf
补丁方式
通过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);
}
}
- ››整合 DB2 与 AIX 的 WLM 功能进行工作负载管理
- ››整合 WebSphere ILOG JRules 与 IBM Content Mana...
- ››整合的安全防御趋势
- ››整合Hibernate3与JBOSS 3.2.X
- ››整合 Macromedia Flex和 Java
- ››iReport整合向量图形的使用心得
- ››整合PDF和Java技术
- ››整合SE J2ME SDK与eclipse开发环境
- ››整合.NET与J2EE两大平台化解争端
- ››整合Apache+Tomcat+MySQL
- ››iReport无法连接Oracle 10g数据库
- ››整合Tomcat4.1和IIS5 直到能够正常打开jsp(绝对详...
更多精彩
赞助商链接