楼主目前所在项目是个物流项目,需要一个扫描运单号即时打印包裹信息的功能;
一坑:
看到这个需求 第一反应就是 java.awt.print API了,然后就啪啪啪 搞定收工 ,自己测了一下 没毛病 打包更新服务器
然后问题就出来了: java.awt.print 只能调用项目所部署的服务器所连接的打印机,因为测试的时候是本地测试,局域网内都是一台打印机,不管是哪台电脑 都能打印出来,就没有发现问题,到阿里云线上服务器问题就出来了,线上怎么调的到我旁边的打印机嘛; gg了
二坑:
既然后台打印不了 就用前端js来实现调用打印机咯;将要打印的东西生成文件或者放到页面上 然后通过js去调用客户端打印机;问题又来了 每次打印都会先跳出打印预览的界面;这个是重点问题,如果不是要直接打印就不会有这么多问题了。百度一下 说谷歌浏览器实现直接打印效果 就是快捷方式里面假如这个 --kiosk-printing ;试过 加入后重启浏览器 效果是 每次打印 预览弹窗会闪一下 然后就打印了 说是直接打印也说的过去,暂时也就这么用了 。过了几天问题就来了 ,公司每天扫描的单量很大 这种方式太慢,很影响操作人员的下班时间。没办法继续改咯。
三坑:
以前的要求是随便一个电脑练了打印机就能用,所以没有考虑用插件,为了避免换一台电脑就有重新装插件,也能理解。但是现在不行了,不用插件搞不定啊。老板看我搞了这么久 妥协了 说实在不行就用插件吧,瞬间觉得那就好搞了。没想到更大的坑等着我了┭┮﹏┭┮。。。
插件一:Lodop
百度一下 找到了口碑最好的Lodop 根据他的示例 又是一顿啪啪啪 改好测试 ok 心想搞了这么久终于搞好了 ,结果打印出来 左下角出现 本页由【试用版打印控件Lodop6.2.2.4】输出 mmp啊 要不要这样啊 然后查了一下 想去掉也简单 260rmb,然后就找了一下破解版 没找到 然后就去找老大(其实想让老大付钱的) ,老大说 找找破解版的 。。。。。。。。。。。。
插件二:jatoolsPrinter
这个插件不错 可以直接打印 还没有水印 真好o(* ̄︶ ̄*)o 改代码测试 然后提示:免费版仅支持IE内核的浏览器。。。。
然后老大找了同行别的公司的插件 ,然后就给个安装包我 文档啥的都没有 说这个可以用。。。。。。
网上别人记录的插件总结,做个笔记:
Lodop 打印 支付几乎所有浏览器,功能非常强大,免费版会多打印一页,并出现版本号等广告。收费版不会出现广告,参考网址:http://www.lodop.net/
jatoolsPrinter_free 打印 免费版仅支持IE内核的浏览器,收费版支持多浏览器,如果选择收费版,建议使用Lodop,详情参考:http://printfree.jatools.com/
DLPrinter 打印 不在更新 不支持IE8及以上版本,不可用!
ScriptX 打印 似乎仅支持IE内核浏览器 免费版含有基础功能,但会弹出的打印预览框采用英文,下载安装包过大。商业版需要购买,且挺贵!
PAZU 打印 支持IE内核浏览器及非IE内核浏览器 应该是免费,但是需要公司申请注册,参考网址:http://www.4fang.net/index.htm
墙外打印控件 向广大网页制作者免费发布,大家可以自由使用。 本控件基于ie的打印模板功能而开发,不支持非IE内核浏览器。能方便网站程序员制作各种打印效果,灵活的控制打印机制。
JS打印,JQprint 简单,无插件。
问题还没解决,,,解决了再更新。。。。。。。。
不好意思,这个问题已经解决了 但是最近太忙 忘记更新了 最后还是用插件的方式解决的;
如果有需要可以加我相互讨论学习,wx通过qq号添加:361528529
=================================分割线=======================================
抱歉,大家伙儿,由于现在习惯用微信了 qq很少使用,昨天登陆一下发现很多朋友加我,问web打印的问题,然后很多是前端的朋友,我这里能跟大家分享的就是itext的工具类使用,及内容排版;
这里说一下我的解决方法:
1. 我需要打印的文件是通过后台生成的,文件内容使用itext画成的,生成后保存到ftp,得到一个文件访问链接;
2. 使用一个客户端插件,向插件的API发送文件url,剩下的事都是插件完成的,插件拿到url,就能通过配置的打印机打印出文件了;
3.插件是公司私有的,抱歉不能分享给大家了;