JAVA多页打印,补打总结

由于项目需求, 需要用java, javafx实现打印, 多页打印和补打的需求, 当时想了很多方式但都不理想, 最后想到结合java, javafx, html, js,数据库等技术来实现这个需求,实现如下:

1:新建PRN_HTML_INFO表存储html模板,此表的PRN_ID是模板序号, HID是模板的ID名称,HVER是模板的版本号。

2:新建PRN_BILL_HIST表存储打印成功之后的数据,PRN_ID为序号, EVENT_TIME为打印时间, EVENT_USER是操作人, COMMENTS是备注, HEADER_NAME是打印数据的表格编码(用来查询历史数据, 在查询里面是必输条件), PRN_DATA是打印数据, HID和HVER和PRN_HTML_INFO的HID,HVER对应, 在补打功能时根据这两个条件在PRN_HTML_INFO表里面查找唯一html模板。

3:在打印时会用到java、js、打印机的三方交互实现打印功能:

使用Runnable实现多线程, 并且Runnable没有start(), 只需调用run()启动。同时在js里面也是调用JavaApp里的ready()和next()来实现重复步骤的打印工作即多页打印。

点击printButton按钮启动js文件里面的多页逻辑(即JS模板),根据传入的参数的A4还是A5来启动打印尺寸逻辑,当continuePrint=0时停止打印。

由于现场打印机的缘故我们初步设定A5纸张的单页表格行数为10, A4纸张的单页行数为38。

4:打印成功存储之后,补打界面根据单据编码查询相应的记录,点击打印会根据当前记录的HID和HVER查询出初次打印时的html模板,并将当前记录的数据填入html模板之中, 随后打印出来。

5:流程图如下:


JAVA多页打印,补打总结_第1张图片
Image.png

你可能感兴趣的:(JAVA多页打印,补打总结)