clodop控件使用

这两天项目上有打印的需求,HTML文本类直接决定浏览器自带的打印, 成本较低,反应时间比控件快些。但是还有一些需要调整格式和位置的图片文字的打印,还是需要一些控件,本来想找一下除了clodop之外还有啥子免费的打印控件,百度了一下,还是有那么几个,但是clodop有一个很大很大的优势,就是免费。所以毅然决然的还是觉得继续研究clodop好了。
项目上图片文字类打印主要有几点需求:
- 可以让使用者自己调试位置,这样方便实现套打;
- 使用者利用模板第一次调好位置之后不用再调,记住每一次改变模板的位置;
- 最好能内嵌到网页内(目前还没解决)
为了解决这些问题,的确花了一些时间,其实网上关于clodop的内容主要都是来自官网(http://www.lodop.net/LodopDemo.html),上面有很多实例,是非常值得研究一下的。但是主要是要结合项目去弄,就比较麻烦了,开始还是走了一些弯路,幸好地球是圆的,还是转回来了^_^

lodop这个控件我们这次选择用的是云打印,也就是clodop,它的api很多都可以从官网轻易找到例子,我就说几个我遇到的坑吧~

  • 关于打印模式,有打印预览、打印维护和打印设计,其中,打印设计可以调整位置、可以修改内容,而打印维护是可选择可修改内容或不可修改内容、可拖动。当然api里面也提供了打印维护的功能权限的设置,比如说位置锁定、文字颜色、删除功能等等(不能选择部分可拖部分不可拖),打印设计是不能设置功能权限,所有属性默认可修改的;
  • 官网上的例子都是单页模式的,但是项目要求是多页打印,这就存在问题了,打印设计和打印维护有多页时,没有分页的概念,所有内容都垒在一起(比如有3页打印都需要调位置,最上层是3页调第2页很不方便,需要拖动很多东西,很容易弄乱界面)找了很久,也没有找到类似分层的东西,所以没有办法在这两种模式下我就把多页分开成为单页处理了;
  • 打印设计打印维护中,若有分页,即使在几个newpage后面加了不一样的背景图,但是显示的也只是一张,所以,我只有默默的把背景图换成了ADD_PRINT_IMAGE
  • 若使用背景图打印预览还是存在分页只能有一张背景图的问题,但是使用背景图有一个好处,很好的实现套打,在打印窗口上有选项可以选择无背景图打印;
  • 换成了ADD_PRINT_IMAGE就出现了另一个问题,在打印设计打印维护中,可被拖动,幸好其中有复原的按钮;
  • 没办法,我还是放弃了背景图使用了图片,那问题又来了,有图片的话,咋个才能实现预览看到图片但是打印是套打呢??哈哈,使用 LODOP.SET_SHOW_MODE(“previewOnly”,1)就会在打印的时候自动忽略图片了,图片只会在预览的时候出现;
  • 套打实现了,位置调整也实现了,现在问题是调整位置之后,怎么让调整位置后的数据保存下来,让使用者调过一次之后不会再翻来覆去的调了,重点来了
LODOP.RETURN=function(taskId,value){
    //其中taskid返回的是远程打印的id
    //value有区别,如果是打印预览,返回的是打印次数,如果是打印设计,返回的这是新的程序代码
    code=value;
 }

获取到新的程序代码之后,想要再打开打印界面就是关闭前调整的样子,只要执行

eval(code)

这里有一个新的坑出现了,如果你是单页也许就不存在以下这个问题了,你会发现执行之后,多页的执行之后也只有一页,这是为什么呢?这是因为返回来value有问题,value是返回来的新程序代码,但是他每句开始都会加上LODOP.INIT(“”),当出现这个的时候,只会默认最后那个init,所有也只有最后一页,所以这情况下,需要自行处理返回来的value值,把init去掉,新加上LODOP.newpage()分页,这样就完美了O(∩_∩)O。

哈哈,保存按钮都不用,就直接保存了,新程序保存在哪呢?原来,我本来打算存在浏览器的localstorage里面的,但是如果使用者清除了缓存,那他就不得不再继续重新经历一番重调的过程了,这样的体验度肯定是不好的,所以最后还是觉得还是存在数据库好了,其他电脑的使用者也可以同时享用O(∩_∩)O哈哈~
关于内嵌到网页,有搜索api,但是目前还没实现,之前在百度的大海洋里面搜素,搜到有人解释lodop可以实现内嵌,但是clodop不可以,但是否是这样的,还需要考证啦。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值