js前台调用lodop打印

lodop简单介绍

lodop的打印功能已经很是强大,也在带web端的图形界面,能够供用户使用。使用js在前台调用lodop打印,通常分为两种方法:css

1:特殊的指令打印,这种打印方式,是采用的与js无关的一些特殊指令,说实在的,不适合咱们使用。这个我的以为只使用于你的web端图形界面使用了lodop自带的图形界面。用这个功能作固定模板还好,但若是要作一个自定义的图形界html

  面去定制打印的模板,不是明智之举。前端

2:采用html+css,将整个html+css代码传给打印机,进行打印。很适合咱们的使用与维护。开发起来也很快,咱们只须要将主要精力放在html上,对其进行适配就好。git

lodop官方网站已经提供了不少的在线样例,能够去看看:lodop官网地址github

使用背景

公司产品想要一个有本身页面本身风格的web端打印图形界面。就像是富文本编译器那样,开发给用户,让用户本身去进行配置打印的模板,后台保存模板,在其余地方调用打印功能时,web

将模板信息塞入到打印机内,造成打印。成型的做品以下。浏览器

 图中的字段能够任意拖动,放在背景页面的任何位置,也能够对其进行富文本的编辑。最后保存时,将lodop指令保存到后台,打印时调用出来。网站

上图使用的是lodop特殊指令进行打印的,非html,至于缘由,就很少说了,反正当时是没得选择。若是还有得选,必定会选择用html打印方式,无论效率方面,仍是适配.net

方面,都比用特殊指令打印舒服的太多。并且,做为一个前端开发者,html打印的方式可使咱们专一于页面的操做,后台进行配合,只须要提供一个模板增删改查的接口就好,插件

仍是很方便的。

html打印在线样例

github地址:https://github.com/namedyouZai/lodop-print-html-demo

该案例使用了html打印。简单的教程里包括了打印、打印预览、打印机列表、指定打印机等接口。做为一个小demo 仍是足够的。

另外在使用以前,别忘了在上面的官网地址里找到符合本身电脑的打印服务进行安装,这样能够直接看到个人在线样例,并执行打印功能。

为何可使用js调用电脑本地的打印机服务?

根据浏览器规则,js是不予许直接访问本地电脑文件的,可是lodop实现了一个桥梁的做用,也就是如今的clodop。这个插件在本地起了一个服务,js将命令发送给clodop,而后经过clodop发送调用打印机。下载并运行clodop你能够看到本地任务栏里多出这个图片,也就能理解了。

正文开始

lodop的打印指令有如下两种模式:

1:html形式的打印

  这种打印能够将html页面做为字符串保存下来,给到打印机进行打印

2:特殊指令的打印

  这种利用譬如:LODOP.SET_PRINT_STYLEA等指令,传给打印机 进行打印

而咱们的系统,由于考虑到是从老系统lodop的特殊指令转换过来的,因此不得以采用了第二种方法,也是磕磕绊绊实现了如今的结果,可是问题仍是比较多的,毕竟涉及到软件调用硬件,而且这个硬件种类较多,还不会去兼容这个软件,只能软件去兼容硬件,因此维护的成本仍是比较高的。

 

另外,我另一个系统内,使用的是html打印方式,能够说是减小了不少麻烦事。UI图以下

 

这个打印是这样实现的:

  1. 前端技术上采用的是angualr
  2. 前台经过双向数据绑定,写好模板。
  3. 从后台获取到模板以后,添加到前台指定的标签以内。
  4. 重启模板部分angular的服务,使页面的双向数据绑定等功能再次生效
  5. 直接将该部分的html+css发送到打印机便可开始打印。
  6. 后台存储的内容就是一个html模板加上样式。

做为一位web端打印开发的老司机,若是你想开发出上图样式的web端打印,我仍是强烈建议你们采用html形式的打印。做者本人是使用过指令打印作上图中的功能的,可是异常的痛苦不堪,具体怎么去实现也就不说了。采用html打印的方式有点以下:

  1. 这种方式只会关注页面是什么样的,最后只须要将想要打印的内容经过innerHtml就能够取出来,不用关注用户在过程当中进行了什么操做。(固然这是任何一种打印都应该作到的事情)
  2. 代码简单,不用去拼接与解析那么多的指令代码,毕竟指令打印是不少的形如:LODOP.ADD_PRINT_TEXT(83,78,75,20,"寄件人姓名"); 这种代码拼接起来的。
  3. 须要作的兼容性会比较少,由于html打印的方式,会根据打印的纸张大小进行百分比的页面占有率进行放大缩小,可是指令打印的可能还须要依照打印指令里的数据去设置纸张的大小,这个实际上是不现实的,不能让用户去适应咱们,只能咱们去适应用户。

 

额外须要掌握的知识

打印机的平常知识,好比如何设置打印纸张,是否正反方向打印纸张,打印纸张的位置误差时须要对打印机或者纸张进行控制、共享打印机如何进行控制等等。虽然调用打印机服务很简单,但由于涉及到硬件系统还有用户的实际操做问题,平常须要解决的问题仍是很多的。最好能本公司制定出一个操做规范还有常见的打印问题解决方案以供用户使用。

相关文章
相关标签/搜索