C-Lodop技术手册
Ver 2.0.4.4
Email:******************
QQ: 932131686 梦泰尔软件(中国) MTSoftware(CN)
1
C-Lodop 技术手册
目 录
一、概述 .................................................................................................................................................................... 3 二、安装 .................................................................................................................................................................... 5
C-Lodop的32位安装文件:........................................................................................................................... 5 C-Lodop的位安装文件:........................................................................................................................... 5 安装后的运行文件: ........................................................................................................................................ 5 安装后的设置窗口 ............................................................................................................................................ 5 安装后的欢迎页面 ............................................................................................................................................ 6 三、调用: ................................................................................................................................................................ 8
加载云打印JS文件的简单方法 ...................................................................................................................... 8 动态加载云打印JS文件 .................................................................................................................................. 8 云打印JS文件的优先级 .................................................................................................................................. 8 加载多个云打印JS文件 .................................................................................................................................. 9 获取LODOP对象 ............................................................................................................................................. 9 四、功能函数 .......................................................................................................................................................... 10
Create_Printer_List .......................................................................................................................................... 10 Create_PageSize_List ....................................................................................................................................... 10 On_Return ........................................................................................................................................................ 10 On_Return_Remain .......................................................................................................................................... 11 demoCreateCLodopJSscript ............................................................................................................................. 11 PREVIEW ........................................................................................................................................................ 11 五、 部署及升级 .................................................................................................................................................... 13 六、 特注 ................................................................................................................................................................ 15
2
C-Lodop 技术手册
一、概述
C-Lodop云打印是梦泰尔软件(MTSoftware)推出的一款精巧快捷的云打印服务产品,以Lodop功能语句为基础,开创了JS语句实现远程打印的先河,为“移动设备+Wifi+普通打印机+集中打印”奠定了编程基础。
C-Lodop对客户端浏览器要求很低,几乎支持任何现代浏览器,除了Windows平台上的Chrome(谷歌)、FireFox(火狐)、Opera、Safari、IE、edge几大系列及其外壳浏览器(如QQ浏览器、搜狗、360、UC等等)之外,客户端还支持“平板电脑”和“智能手机(无需安装APP)”以及Linux、OS(Mac)上的浏览器。
C-Lodop可扮演两种角色,第一种是在Windows客户端PC本机上安装,从而替代Lodop控件功能,这也是常见基本用法;另一种角色是单独部署云服务器,适合后台集中打印。 在第一种角色中,建议“云打印+控件”组合搭配使用。
1)C-Lodop与Lodop搭配示意图:
Web服务器普通打印机(网络共享)网 络C-LodopLodop本地打印机浏览器(不支持插件)浏览器(支持插件)客户端(C-lodop与Lodop搭配部署) (图1)
3
C-Lodop 技术手册
2)C-Lodop部署示意图:
普通打印机(本地)普通打印机(本地)普通打印机(网络共享)C-Lodop云主机2(windows)WEB服务器C-Lodop云主机1(windows)网络intranet(wifi)PC(Linux/mac..)PC(windows2000/xp/win7/win8/win10)Pad(iOS/Windows/Android )智能手机(Android/IOS/WindowsPhone)访 问 设 备(客户端/所有浏览器)(图2)
4
C-Lodop 技术手册
二、安装
C-Lodop的32位安装文件:
文件名是CLodopPrint_Setup_for_Win32NT.exe 可同时在32位和位Windows操作系统上安装,适应面较广。
C-Lodop的位安装文件:
文件名是CLodopPrint_Setup_for_WinNT.exe 只能在位Windows操作系统上安装,性能较高,适合单独部署。
安装后的运行文件:
以32位文件为例:
1、文件路径:
Program Files (x86)\\MountTaiSoftware\\CLodop32
2、云打印服务主文件:
CLodopPrint32.exe
3、免登录启动服务文件:
CLodopService32.exe
4、管理设置文件:
CLodopSetup32.exe
5:样例目录
Program Files (x86)\\MountTaiSoftware\\CLodop32\\Rootdir\\CLodopDemos 样例中有一个LodopFuncs.js文件很关键,建议尽量弄懂它。
安装后的设置窗口
正常安装成功后,首先会弹出如下提示窗口:
5
C-Lodop 技术手册
(图3)
这也是管理设置窗口,以后可以从Windows如下菜单重新进入以上界面。
(图4)
在管理设置界面中,通过“设置->端口设置”菜单进入下面的对话窗口进行端口设置,默认端口是8000:
(图5)
安装后的欢迎页面
点击以上图3圈定的按钮链接,进入如下欢迎页面:
6
C-Lodop 技术手册
(图6)
7
C-Lodop 技术手册
三、调用:
加载云打印JS文件的简单方法
调用C-Lodop很简单,在页面head中 添加 如下路径的js文件,就可以向其发打印请求了,如下几个例子都可以在欢迎页面或Lodopfuncs.js这个样例文件里找到:
这里的红色部分是固定内容,Host地址是指安装C-Lodop的主机地址,可以是其IP地址或域名,如果是本地(第二种角色)打印,该值用localhost、127.0.0.1或主机名代替,端口默认是8000(单独部署时,可以自行指定自己的端口),如:
动态加载云打印JS文件
为了方便控制或兼容老程序,以上静态方法可以用如下动态语句替代,效果一样:
var oscript = document.createElement(\"script\");
oscript.src =\"http://localhost:8000/CLodopfuncs.js?priority=1\";
var head = document.head || document.getElementsByTagName(\"head\")[0] || document.documentElement; head.insertBefore( oscript,head.firstChild );
云打印JS文件的优先级
以上引用方法的参数priority设置的是优先级,优先级值是从0开始的阿拉伯数字,数字越大,优先级越高,默认是0。当一个页面按后续章节同时引用多个云主机时,优先级设置很关键,否则会按下载顺序来处理。
8
C-Lodop 技术手册
加载多个云打印JS文件
如果一个页面通过以上语句同时引用了俩云主机,那么这个页面既可以让192.168.1.1之外的所有客户端通过该主机进行集中打印,也可以让那些自身也安装了C-Lodop的PC电脑上的浏览器优先通过自己的C-Lodop进行打印,而不是全靠192.168.1.1这个云主机。
这也是C-Lodop默认安装例子演示时,既可以让手机浏览器访问,也可以让电脑访问的神奇原因。 获取LODOP对象
引用以上js文件后,就可以在页面程序里通过getCLodop(注意:如果C-Lodop与Lodop按图1搭配使用,要使用Lodopfuncs.js示中的getLodop,其中就包含了getCLodop语句的调用)函数获取主
对象,赋值给一个普通JS变量,为了兼容已经开发好的打印程序,仍然统一用LODOP这个变量名:
var LODOP=getCLodop();
有了该对象之后,就可以调用云打印功能语句了,如
LODOP.PRINT(); LODOP.PREVIEW();
LODOP.PRINT_DESIGN(); 更多语句参考后面的功能函数介绍。
9
C-Lodop 技术手册
四、功能函数
C-Lodop的功能函数几乎涵盖了Lodop的所有语句,它们的详细功能说明参考《WEB打印控件Lodop技术手册》。除此之外,新增了部分与页面整合相关的函数和属性,还有个别语句的参数值有所扩展,详解如下:
Create_Printer_List
作用:C-Lodop函数之一,获得云主机链接的所有打印机名单,并添加到当前页面某个Select
标签元素中
格式:Create_Printer_List(oElement);
参数:oElement 目标对象(已经存在的某个Select标签元素)
举例:CLODOP.Create_Printer_List(document.getElementById('Select01'));
Create_PageSize_List
作用:C-Lodop函数之一,获得目标打印机所拥有的纸张类型名单,并添加到当前页面某个
Select标签对象元素中
格式:Create_PageSize_List(oElement, iPrintIndex);
参数:oElement 目标对象(已经存在的某个Select标签元素) iPrintIndex目标打印机在windows系统内的序号
(操作系统对所添加打印机的顺序编号,从0开始)
举例:CLODOP.Create_PageSize_List(document.getElementById('Select03'), 2);
On_Return
作用:C-Lodop属性之一,设置那些需要返回结果的动作语句在获得结果时触发的回调函数 格式:On_Return=function(TaskID,Value){...};
说明:和Lodop相比,C-Lodop的动作语句不再立即返回执行结果,而是返回一个任务编号,
页面程序在回调函数中通过该编号来区分是哪个语句返回的结果,并根据结果值在该回调函数中进行下一步的处理。
参数:TaskID 后续动作语句的任务编号,进一步参考后面On_Return_Remain的使用。 Value该动作语句返回的结果值,类型为逻辑真假值或字符串值。 举例: ....
LODOP.On_Return=function(TaskID,Value){
if (Value) alert(\"已发出实际打印命令!\"); else alert(\"放弃打印!\"); }; LODOP.PRINTA(); //这是一个典型的动作语句
10
C-Lodop 技术手册
On_Return_Remain
作用:C-Lodop属性之一,让所设置的回调函数持续保留,对后续多个动作都有效 格式:On_Return_Remain=真假值;
说明:正常情况下,回调函数执行完毕后会自动销毁(也就是本属性默认值是false),而本
属性设置为真值就可以阻止其销毁,从而让后面的所有动作语句都触发同一个回调函数,在回调函数中用TaskID的值来区分是哪个动作触发的回调。 举例:
var TaskID1,TaskID2
LODOP. On_Return_Remain=true;
LODOP.On_Return=function(TaskID,Value){ if (TaskID== TaskID1) {
alert(\"判断是否打印成功的结果是:\"+ Value) } else if (TaskID== TaskID2) {
alert(\"判断打印任务是否还存在的结果是:\"+ Value) }; };
TaskID1=LODOP.GET_VALUE(\"PRINT_STATUS_OK\ TaskID2=LODOP.GET_VALUE(\"PRINT_STATUS_EXIST\
demoCreateCLodopJSscript
名称:C-Lodop典型例子函数之一,在当前页面动态引入C-Lodop的js文件CLodopfuncs.js,
引入时清理掉此前的其它引用,从而唯一选择云主机。 格式:demoCreateCLodopJSscript(strSrc);
参数:strSrc 参数值为目标云主机的script标签,其格式为: 也可以仅是src值部分:
http://Host地址:端口//CLodopfuncs.js 举例:
demoCreateCLodopJSscript (\"\"); 或
demoCreateCLodopJSscript (\"http://192.168.0.8:8000/CLodopfuncs.js\");
与前面说的在页面能同时引用多个云主机相比,本函数的动态选择比较常见,毕竟客户输出的目标打印机往往是很明确的。
PREVIEW
作用:打印预览语句扩展了三个参数oView,iW,iH
11
C-Lodop 技术手册
格式:PREVIEW(oView,iW,iH) 功能:以某种样式进行打印预览。 参数:参数值及其含义
oView:让预览窗口内含在当前页面内(而不是弹窗),这里的“内含”不同于插件“内嵌”模式,进一步的内含样式有如下几种可选:
_dialog:弹出对话框 _blank :新窗口 _self:在本窗口 _top :新窗口 _parent:本窗口
具体ID值:在某个现有iframe元素内(需要提前在页面内增加该iframe) iW:预览窗口显示时的宽度值(px); iH:预览窗口显示时的高度值(px);
举例:LODOP.PREVIEW(\"_blank \"); //在新的浏览器窗口显示打印预览 (注意浏览器阻止设置对其仍然有效)
LODOP.PREVIEW(\"001\"); //在ID等于“001”的iframe元素内显示打印预览
12
C-Lodop 技术手册
五、升级
Lodop 6203发行包里包含“install_lodop32.exe”、“install_lodop.exe”、 “CLodopPrint_Setup_for_Win32NT.exe”这3个安装文件和50个小例子及其JS文件。
文件“CLodopPrint_Setup_for_Win32NT.exe”是云打印“C-Lodop”的主安装文件,如果是配合部署需三个文件(见图1),如果单独部署只需这一个文件 。
由于云打印兼容控件传统语句,所以开发者要把自己的web系统由Lodop6.1xx升级到新版本(6.2xx+云打印)还是比较容易的,升级主要步骤有三个:
第一、更新Lodopfuncs.js这个文件。这虽说是一个js例子,但对多数人来说最好直接使用它,此前已经自行编写getLodop过程的开发者需要理解本次变化后充实改进一下。其变化主要是增加了判断哪些浏览器调用传统控件,哪些浏览器调用C-Lodop云打印,并动态添加支持云打印的新js文件。
如果升级为全面采用云打印(不再使用控件),即单独部署C-Lodop云打印,可修改如下
函数直接返回true
源代码如下(注意红色代码变化):
//====判断是否需要安装CLodop云打印服务器:==== function needCLodop(){ try{
var ua=navigator.userAgent;
if (ua.match(/Windows\\sPhone/i) !=null) return true; if (ua.match(/iPhone|iPod/i) != null) return true;
... ...
};
return false;
} catch(err) {return true;}; };
修改后如下:
//====判断是否需要安装CLodop云打印服务器:==== function needCLodop(){ try{ };
return true;
} catch(err) {return true;};
13
C-Lodop 技术手册
第二、C-Lodop语句对字母大小写敏感,要求大写。此前控件例子中虽然都是大写,但小写或混合也是勉强可以的,但现在不行了,必须全是大写,例如LODOP.PRINT()写成LODOP.print()是非法的。
第三、云打印语句返回结果的方式不一样,要指定回调函数。此前控件语句本身会“同步返回结果\",而新的云打印前后指令不在同一个程序进程里,所以采用“异步回调函数”,函数名叫On_Return。这个改动涉及面稍广,但做起来也不难,参考如下举例(样例4),只需在原来(蓝色)代码前面增加这段新(红色)代码,如此以来就可以让页面程序同时兼顾老版本控件和新的云打印:
if (LODOP.CVERSION) { //用CVERSION属性判断是否云打印 LODOP.On_Return=function(TaskID,Value){
if (Value) alert(\"已发出实际打印命令!\"); else alert(\"放弃打印!\"); };
LODOP.PRINTA(); return; };
if (LODOP.PRINTA())
alert(\"已发出实际打印命令\"); else
alert(\"放弃打印\");
14
C-Lodop 技术手册
六、特注
由于运行在云端,所以C-Lodop不支持预览或设计窗口的前端内嵌功能,需要这项功能的业务系统,升级时最好兼顾“控件(插件)+云打印”,以便操作者根据需要选用支持插件的浏览器。尽管有此缺憾,但C-Lodop构思巧妙,未来前景远大,以后会发布带更多精彩功能的版本,甚至让最终用户能直接使用,满足“移动设备+Wifi+普通打印”的迫切需要。
<完>
15
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务