实现模板打印一般分三个步骤:
1.设置模板
2.设置数据源
3.打印或预览或输出到Excel
例一:普通打印
//实现数据源
nc.ui.pub.print.IDataSource dataSource = new MyDataSource();
// 实例化打印入口
PrintEntry print = new PrintEntry(parent, dataSource);
// 根据公司、节点编号、操作员、业务类型加载满足条件的打印模板
print.setTemplateID(String pkCorp, String funNode, String operator, String pkBusiType);
// 在满足条件的模板中选择一个打印模板, 返回值 < 0 表示用户取消打印或读取模板错误
print.selectTemplate();
// 有下面几种输出方式
print.preview(); //预览,在预览界面也可以打印
print.print(); //直接打印
print.exportExcelFile(); //输出到Excel
print.exportPdfFile();// 输出到pdf
例二:批量打印: 批量打印是指用同一个模板对一批数据源进行打印.批量打印不进行预览直接进行打印. 批量打印支持输出到excel.
// 实例化打印入口,parent是父窗口容器
PrintEntry print = new PrintEntry(parent);
// 根据公司、节点编号、操作员、业务类型加载满足条件的打印模板
print.setTemplateID(String pkCorp, String funNode, String operator, String pkBusiType);//加载打印模板
// 在满足条件的模板中选择一个打印模板,返回值<0表示用户取消打印或读取模板错误
print.selectTemplate();
// 进入批量打印准备状态,此时选择是输出到打印机还是Excel
print.beginBatchPrint();
// 向打印入口对象中加入数据源,形成批量数据
for (int i = 0; i < data_source_count; i++) {
print.setDataSource(data_source[i]);
}
// 数据源加入完成,结束批量打印准备状态,开始实际的打印处理
print.endBatchPrint();
注:批量打印从5011开始无需在开始和结束的时候调用beginBatchPrint()和endBatchPrint()方法,直接调用相应的输出方法即可。
PrintEntry print = new PrintEntry(parent);
print.setTemplateID(String pkCorp, String funNode, String operator, String pkBusiType);//加载打印模板
print.selectTemplate();
for (int i = 0; i < data_source_count; i++) {
print.setDataSource(data_source[i]);
}
print.preview();
PrintEntry是打印对外服务的入口, 它的接口设计原则是简单:通过简单的调用即可完成打印功能. 其内部实现(都是缺省实现)被完全封装,对外部不可见.
PrintEntry依赖四个各司其职的 接口(对这些接口都进行了缺省实现,外部不用关心.):
数据源组织器(IDataSourceOrganizer)
打印模板数据存取器(IPrintDataAccessor)
打印数据解析器(AbstractTemplateParser)
打印任务(AbstractTemplateOutputTask)
如果二次开发或者产品组对与上面四个接口有特殊的实现,请使用TemplateOutputTaskBuilder类构建打印任务.
NC65 模板打印的入口类 nc.ui.pub.print.PrintEntry
最新推荐文章于 2020-09-11 15:24:26 发布