基于phantomJs的Java后台网页截图
公司要求要用POS打印机打印小票,使用socket连接的方式。打印的效果是基于一个HTML代码。故想到采用网页截图的方式,然后通过POS打印机打印截图即可。
刚开始接手时,查阅了很多文章。截图也能打印,但是达到固定的排版效果以及文字大小却只能打印一半(纸张宽度只是用了一半)导致打印出来的效果不理想。采用降低DPI方式可以解决,但是字体会变模糊,故想到可以用网页放大应该可以实现。结果还真有(博主前端一般,所以想了好久。= =!)
PlantomJs是一个基于javascript的webkit内核无头浏览器 也就是没有显示界面的浏览器,博主这里只用到了屏幕截图。还有屏幕放大。
参考文章:
- 基于PhantomJs的Java后台网页截图技术: https://blog.csdn.net/ontologyFhcj/article/details/55098590
- PhantomJs的用法: https://www.jianshu.com/p/1530061334a3
一、下载
直接进入官网https://phantomjs.org/download.html,根据对应的系统进行下载即可,博主是window系统的,就下载了window版本的,下载后直接解压即可。
二、编写脚本
负责截图的脚本如下
/**
* phantomJs 脚本
*/
var page = require('webpage').create(), system = require('system'), address, output, size;
if (system.args.length < 3 || system.args.length > 5) {
phantom.exit(1);
} else {
address = system.args[1