java打印服务_GitHub - PatrickLh/java-print: Java实现打印服务的例子

JAVA-PDF-Print

一、基本情况

在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打印,最后可参考资料偏少,由于项目紧急且对NodeJS的熟悉程度目前也还不够,所以转而使用比较熟悉的Java构建了调用本地打印机进行打印的服务。

为了实现自动打印进行了两种方案的尝试:

将项目部署到web server,对外提供接口服务,需要进行打印的时候调用接口服务,收到请求后调用本机打印机服务进行数据打印。

启动一个线程,持续请求数据库并对符合条件的数据进行打印

由于部署环境IP地址并不能固定,所以导致了放弃方案一,使用方案二进行打印尝试,当然也有为方案一预留的服务接口。

二、项目依赖

项目由于打印的结果需要和Web端页面展示的内容相一致,于是打印历程比较艰辛,具体流程以及相关依赖如下:

通过HTTPClient访问远程接口获取数据

生成HTML : 利用Freemarker,将web端的html作为模板进行数据配置和填充

HTML转为PDF: 由于HTML页面不能通过打印机直接打印,而考虑到兼容问题,所以转为PDF最为合适,使用了第三方转换工具:wkhtmltopdf,这也是在使用过程中发现转换结果最好的工具了

使用JAVA获取PrintService服务打印PDF

三、吐槽

经测试目前线程启动后可能存在中途中断的情况

对于代码中的hardcode,会在适当的时间移动到配置文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值