* new way |
今天我们换一种方式来写,我回先说教程,让你从一个大白也可以能够使用,之后我们说理论,开始吧。
我了解到的打印的几种方式(基于BS开发),分成两大块:1,客户端直接打印,可以通过windows自带的打印功能,在页面进行打印,特点:整个页面打印,没有模板传送,不灵活;也可以通过插件,过去常用的XActive插件,特点:只适用于微软的IE浏览器,现在的其他浏览器也不在兼容了;还有一种方式就是今天要说的LoDop插件了,本人自认为他是一块很强大,同时又很轻便的web打印插件,让你在客户端轻而易举的完成打印,像http的网络认证,这些东西都不用你去负责了。2,服务器端打印,这块的了解不是很多,服务器端打印主要是网络打印机,通过http,udp服务器直接将模板指令发送到客户端的打印机接口完成。
* 开始 |
这是下载地址,详细的内容在主页显示,我们今天就从这里开始 ,http://www.lodop.net/download.html;这里会有3个程序如下:
install_lodop32.exe和install_lodop64.exe 这俩文件是安装和升级的主程序,对应32位和64位浏览器(这里是浏览器位数不是操作系统位数), 提供给用户下载后使用,如果将它们复制或改名为uninstall_lodop32.exe(名前加un)就可用其卸载控件。
1.install |
安装顺序是,先安装CLodop.exe,之后根据自己的浏览器位数选择安装32位或是64位。这里并不是计算机的位数,如果我们不确定安装哪一个的话,我有两个办法:No1,都安装(他会自行检测使用的),No2,里面有很多demo,在demo1中就可以检测我们时候安装了插件。
2.嵌入 |
通常情况下,在页面中嵌入Lodop的如下引用代码,前提我们先引入他们的js,在demo中都会有这个js的。然后用一个全局对象变量来使用控件:
- 在head或body中加入:
<script language="javascript" src="LodopFuncs.js"></script>
<object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>
<embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed>
</object>
·在调用Lodop功能前,先用如下JS过程获得控件对象,有如下两种方式:
//fist way
var LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));
//second way
var LODOP=getLodop();
3.使用 |
我们可以放入js方法中,使用的时候直接调用就可以了:
function printLodop() {
var LODOP = getLodop();
//设置打印机的名称
LODOP.SET_PRINTER_INDEX("TSC TTP-342E Pro");
//打印内容
LODOP.PRINT_INITA(10,10,762,533,"测试demo");
LODOP.ADD_PRINT_BARCODE(71,103,164,119,"QRCode","123456789012");
LODOP.ADD_PRINT_TEXT(48,127,100,20,"测试demo");
//打印预览
LODOP.PREVIEW();
//打印
LODOP.PRINT();
}
效果是这样的:
同时我们可以自己绘制模板,通过参数的传递,进而修改内容便可以了,那我么你要做的的就是讲模板进行封装了,如何创建模板呢?这里有可视化的绘制界面进行绘制,然后导出代码我们便可以随处使用了~
* 利弊分析 |
当然,这款控件的确很好用,足够我们平时的开发使用了,我说的是免费版的也是可以哦,但是,对于大规模的生产中,这个免费的插件就需要代价了,如果我们采用直接打印的话是有水印的,如果通过先预览再打印,水印是便没有了,我想这不是免费版的缺点,我们应该看到后者,这是免费版的复印,我们也要尊重一个劳动成果;当然还有一个可以直接打印没有水印的方法,我想你也应该知道了,那就是money,大家根据自己情况考虑吧。
* 利弊分析 |
C-Lodop是一个特殊的Web服务程序,安装在一台Windows电脑上之后,可接受来自本地或其它客户端浏览器的远程打印指令。从这个Web站点(云服务端)可下载的最关键JS文件名叫:CLodopfuncs.js 所有对话和打印指令都囊括其中,通常下载引用该文件的方式类似如下:
该JS文件下载执行后,立即在页面内自动建立一个WebSocket链接,并与云服务端保持通讯畅通,随时接收来自页面的JS打印指令。由于这些指令严格遵守著名“打印控件Lodop”的指令语法,所以在本地(Localhost)使用时,可以完全替代控件(浏览器插件)功能,从这个角度讲,C-Lodop可以看作Lodop升级换代产品。
服务端收到指令后,即在云端排队加工处理,快速实现传统Windows打印,如果指令来自本地,云主服务程序还能直接跳出“打印预览窗口”或”打印设计窗口”。如果指令来自其它客户端,则交由CLodopfuncs.js在页面内用iframe+img标签元素临摹展现一个“打印预览窗口”。
* end |
工具虽小,但是生产中却很是常用,而且现在的打印还没有一套很成熟的流程,或是比较完善的模板形成流水化,也就意味着我们在对工具开发和使用的路上需要不断的精益求精。
感谢您宝贵的阅读时间~