项目中要用到针式打印机票据打印,本来是使用java printable 通过 Graphic2D输出到图形化方式打印的,运行了一段时间客户对版面个性需要比较多,用输出图形的方式调整太麻烦,而且Graphic2D画表格真的很麻烦,所以后来选择用ireport来定制版面,通过jasperreport api直接输送到打印机上。
目前针式打印几比较通用的纸张是9.5*5.5英寸的,根据不同客户的需求,我们定制了2种版面,因为我们是做服装行业的,一类客户是不管理尺码的,列数比较少纵向打印比较省纸张,另一种是管颜色尺码,以动态尺码为表头,需要用到交叉报表。
数据是从客户端通过socket发送到我的程序上的,所以需要用到javabean数据源。
首先第一步创建测试数据源,创建一个javabean类用于承载数据,创建一个工厂类用于提供数据。
public class JasperDatasourceFactory {
public static Collection createBeanCollection1() throws Exception{
List list_1=new ArrayList();
//填充list_1
return list_1;
}
}
在ireport添加项目的classpath,工具-选项-classpath,添加完之后需要重启ireport,不然找不到。
创建一个ireport空模板,设置报表属性width=369 height=684 及上面提及纸张的纵向模式
创建javabean数据源,并将数据源设为默认数据源:
3.导入数据源字段:
右键导航栏里的根节点,点击edit query,进入后切换到javabean datasource,填写javabean类路径,点击read attributes,把要统计的自动天下到下方的列表中