js前台调用lodop打印
lodop简单介绍
lodop的打印功能已经非常强大,也在带web端的图形界面,可以供用户使用。使用js在前台调用lodop打印,一般分为两种方法:
1:特殊的指令打印,这种打印方式,是采用的与js无关的一直特殊指令,说实在的,不适合我们使用。这个个人觉得只使用于你的web端图形界面使用了lodop自带的图形界面。
2:采用html+css,将整个html+css代码传给打印机,进行打印。很适合我们的使用与维护。
lodop官方网站已经提供了很多的在线样例,可以去看看:lodop官网地址。
使用背景
公司产品想要一个有自己页面自己风格的web端打印图形界面。就像是富文本编译器那样,开发给用户,让用户自己去进行配置。成型的作品如下。

图中的字段可以任意拖动,放在背景页面的任何位置,也可以对其进行富文本的编辑。最后保存时,将lodop指令保存到后台,打印时调用出来。
在线样例
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图如下

这个打印是这样实现的:
- 前端技术上采用的是angualr
- 前台通过双向数据绑定,写好模板。
- 从后台获取到模板之后,添加到前台指定的标签之内。
- 重启模板部分angular的服务,使页面的双向数据绑定等功能再次生效
- 直接将该部分的html+css发送到打印机即可开始打印。
- 后台存储的内容就是一个html模板加上样式。
作为一位web端打印开发的老司机,如果你想开发出上图样式的web端打印,我还是强烈建议大家采用html形式的打印。作者本人是使用过指令打印做上图中的功能的,但是异常的痛苦不堪,具体怎么去实现也就不说了。采用html打印的方式有点如下:
- 这种方式只会关注页面是什么样的,最后只需要将想要打印的内容通过innerHtml就可以取出来,不用关注用户在过程中进行了什么操作。(当然这是任何一种打印都应该做到的事情)
- 代码简单,不用去拼接与解析那么多的指令代码,毕竟指令打印是很多的形如:LODOP.ADD_PRINT_TEXT(83,78,75,20,"寄件人姓名"); 这种代码拼接起来的。
- 需要做的兼容性会比较少,因为html打印的方式,会根据打印的纸张大小进行百分比的页面占有率进行放大缩小,但是指令打印的可能还需要依照打印指令里的数据去设置纸张的大小,这个其实是不现实的,不能让用户去适应我们,只能我们去适应用户。
额外需要掌握的知识
打印机的日常知识,比如如何设置打印纸张,是否正反方向打印纸张,打印纸张的位置偏差时需要对打印机或者纸张进行控制、共享打印机如何进行控制等等。虽然调用打印机服务很简单,但因为涉及到硬件系统还有用户的实际操作问题,日常需要解决的问题还是不少的。最好能本公司制定出一个操作规范还有常见的打印问题解决方案以供用户使用。
js前台调用lodop打印的更多相关文章
- 前台JS(Jquery)调用后台方法 无刷新级联菜单示例
前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例 下面是做的一个前台用JQUERY,AJAX调用后台方法做的无刷新级联菜单 http://www.dtan.so CasMenu.aspx页 ...
- js前台与后台数据交互-后台调前台(后台调用、注册客户端脚本)
转自:http://blog.csdn.net/wang379275614/article/details/17049721 客户端脚本一般都在前台,这里讲的是(1)在后台调用前台定义的脚本(2)在后 ...
- asp.net调用Lodop实现页面打印或局部打印,可进行打印设置或预览
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebPrint.aspx.cs ...
- LODOP打印用JS获取的当前日期
该文详细一步步解释JS获取当前时间的方法,新手小白也看到懂,最后是实际的获取当前年月份的方法.JS中的Date()对象,包含很多当前系统时间的方法,首先建立一个Date()对象,这里取名为date,然 ...
- 使用jqPrint.js调用浏览器打印界面,打印网页中的某一部分该部分含有ECharts图表
1.准备好js文件(我用的是谷歌浏览器) 这个文件是为了防止你的jQuery版本过高而不适配的问题 这是调用浏览器打印的js插件 2.引入js文件 <script src="js/jq ...
- 【JS新手教程】LODOP打印复选框选中的内容
在html中,复选框是常见的使用之一,本文介绍如何获取选中的复选框的值,并用LODOP打印.给需要为一组的复选框,复选框的checkbox设置相同的name属性,设置不同的id,然后设置需要的valu ...
- 【JS新手教程】LODOP打印复选框选中的任务或页数
之前的博文:[JS新手教程]LODOP打印复选框选中的内容关于任务:Lodop打印语句最基本结构介绍(什么是一个任务)关于本文用到的JS的eval方法:JS-JAVASCRIPT的eval()方法该文 ...
- js调用页面打印
----------------------调用页面打印-------------------------------- <body> <div id="divPrint& ...
- js调用浏览器打印
<input type="button" id="print" onclick="printdiv('list');" value=& ...
随机推荐
- 搞懂分布式技术12:分布式ID生成方案
搞懂分布式技术12:分布式ID生成方案 ## 转自: 58沈剑 架构师之路 2017-06-25 一.需求缘起 几乎所有的业务系统,都有生成一个唯一记录标识的需求,例如: 消息标识:message-i ...
- ssh原理与应用
一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...
- [Android]Adb connection Error:远程主机强迫关闭了一个现有的连接
目前,针对Android手机研发的刷机软件和手机助手软件,都会调用Google开发的adb工具与手机进行通信. 有的刷机软件或者手机助手软件,在系统里会常驻一个服务,独占adb的端口(5037),这样 ...
- python文件名不要跟模块名相同,报错AttributeError: 'module' object has no attribute 'Differ'
python中的文件都会生成pyc文件,包括模块也是这样,所以调用模块的时候,实际上会调用模块.pyc文件:在这个前提下,如果将文件名命名成跟模块名一样,在同一目录下就会生成一个跟模块名一样的pyc文 ...
- yum的搭建
搭建本地yum仓库的步骤 . 创建光盘目录,挂载光盘 . 进入/etc/yum/repos.d目录下,备份所有配置文件 . 利用一个含有大写M的配置文件作为配置文件的模板 . 在模板里将enabled ...
- I/O流+统计文件词频
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- django-pymysql-封装的sql使用
封装的sql import pymysql def get_list(sql,args): conn = pymysql.connect(host=, user='root', passwd='', ...
- jmeter测试MySQL数据库
前提:安装好MySQL数据库,并且下载了jmeter安装包 1.打开jmeter 2.下载mysql-connector-java.jar,将jar包默认复制到jmeter的bin目录下面,因为默认打 ...
- Python基础学习----字典常用操作
字典的常见操作: # 字典: # 格式:{键值对,键值对} dict_demo={"name":"bai-boy","age":17} # ...
- JSP的EL和JSTL解析
1. EL 简介EL 全名为Expression Language,所有EL都是以${ 为起始.以} 为结尾的.EL 语法很简单,它最大的特点就是使用上很方便. 接下来介绍EL 主要的语法结构: ${ ...