《云打印C-Lodop技术手册2112.docx》由会员分享,可在线阅读,更多相关《云打印C-Lodop技术手册2112.docx(23页珍藏版)》请在三一办公上搜索。
1、C-Lodop技术手册Email: gungho999QQ: 932131686梦泰尔软件(中国)MTSoftware(CN)一、概述-3 -二、安装-5 -C-Lodop的32位安装文件:-5 -C-Lodop的64位安装文件: -5 -C-Lodop 的 32 位安装文件(适应 https 协议): -5 -安装后的运行文件:-5 -安装后的设置窗口- 6 -安装后的欢迎页面-7 -三、调用:-8 -加载云打印JS文件的简单方法-8 -动态加载云打印JS文件-8 -云打印JS文件的优先级-8 -加载多个云打印JS文件-9 -获取LODOP对象-9 -四、功能函数-10 -Create_Pr
2、inter_List- 10 -Create_PageSize_List- 10 -On_Return- 10 -On_Return_Remain- 11 -On_CLodop_Opened- 11 -demoCreateCLodopJSscript- 12 -PREVIEW- 12 -五、升级-14 -六、https 调用 C-Lodop- 16 -安装文件-16 -服务端口- 16 -进入https服务欢迎页-16 -安装后的运行文件-17 -判断https月艮务-18 -七、特注-18 -一、概述C-Lodop云打印是梦泰尔软件(MTSoftware)推出的一款精巧快捷的云打印服务产品,
3、以 Lodop功能语句为基础,开创了 JS语句实现远程打印的先河,为“移动设备+Wifi+普通打印 机+集中打印”奠定了编程基础。C-Lodop对客户端浏览器要求很低,几乎支持任何现代浏览器,除了 Windows平台上的 Chrome(谷歌)、FireFox(火狐)、Opera、Safari、IE、edge几大系列及其外壳浏览器(如QQ 浏览器、搜狗、360、UC等等)之外,客户端还支持“平板电脑”和“智能手机(无需安装APP)” 以及Linux、OS(Mac)上的浏览器。C-Lodop可扮演两种角色,第一种是在Windows客户端PC本机上安装,从而替代Lodop 控件功能,这也是常见基本用
4、法;另一种角色是单独部署云服务器,适合后台集中打印。 在第一种角色中,建议“云打印+控件”组合搭配使用。1)C-Lodop与Lodop搭配示意图(C-lodo p与Lodo p搭配部署)(图 1-1)2)C-Lodop独立部署示意图:C-Lodop(win普通打印机(本地)普通打印机(本地)云主机2 lows)wWEB服务器网络 intranet(wifi)PC(Linux/mac.)普通打印机(网络共享)C-Lodop云主机1 (winPad(iOS/Windows/Android )PC(windows2000/xp/win7/win8/win10)智能手机(Android/IOS/Win
5、dowsPhone)访问设备(客户端/所有浏览器)(图 1-2)C-Lodop的32位安装文件:文件名是CLodopPrint_Setup_for_Win32NT.exe可同时在32位和64位 Windows操作系统 上安装,适应面较广。C-Lodop的64位安装文件:文件名是CLodopPrint_Setup_for_Win64NT.exe只能在64位 Windows操作系统上安装, 性能较高,适合单独部署。C-Lodop的32位安装文件(适应https协议):文件名是 CLodop_Setup_for_Win32NT_https.exe 可同时在 32 位和 64 位 Windows 操作
6、系 统上安装,适应面较广。安装后的运行文件:以32位文件为例:1、文件路径:Program Files (x86)MountTaiSoftwareCLodop322、云打印服务主文件:CLodopPrint32.exe3、免登录启动服务文件:CLodopService32.exe4、样例目录Program Files (x86)MountTaiSoftwareCLodop32RootdirCLodopDemos样例中有一个LodopFuncs.js文件很关键,建议尽量分析理解透彻。安装后的设置窗口正常安装成功后,首先会弹出如下提示窗口:C-Lodop SetupI . Chro-meC-Lod
7、pHTM-WEB-PRINT32hit(图 2-3)(图 2-1)这也是管理设置窗口,以后可以从Windows如下菜单重新进入以上界面。Demo Html藤)Uninstall C-Lodopi. CodeS itte- 5.011 CollabNet Subversion Client(图 2-2)在管理设置界面中,通过“设置- 端口设置”菜单进入下面的对话窗口进行端口设置,默认 端口是8000和18000,如果是https安全协议版,默认是8443端口:安装后的欢迎页面点击以上(图2-1)圈定的按钮链接,进入如下欢迎页面:(图 2-4)如(图2-4)红框中连接进入,可验证全部传统例子在c-
8、lodop中的应用情况。加载云打印JS文件的简单方法调用C-Lodop很简单,在页面head中添加 如下路径的js文件,就可以向其发打印请求 了,如下几个例子都可以在欢迎页面或Lodopfuncs.js这个样例文件里找到:这里的红色部分是固定内容,Host地址是指安装C-Lodop的主机地址,可以是其IP地址或域 名,如果是本地(第二种角色)打印,该值用localhost、127.0.0.1或主机名代替,端口默认是 8000、18000双端口(页面可以引用之一或同时引用),双端口服务的优势是当其中一个端口 失效时,另一端口可继续工作,保证程序正常运行。单独部署时,也可以修改该端口值,如: 动态
9、加载云打印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 );LodopFuncs.j
10、s中动态加载如图(3T):3839如4142如羽如46鸵/=页画引用CL odop云打印必须的J 5文件:=。if (necdCLodop () 4Tar head 二 docujient t head | | daci-ULer.t getElenaen.t sByTs.gNajte head .1 0 | | doci-iirLSiLt = docuirLsntE 1 enentar oscript 二 ddcumirt-匚rEat 色Elwngrrt (:正丁1口七):1oscript H src - hi口: JL 1口匚a 1 h口;叶:R【I11口.匚L口donfuDE心 盘Mri
11、口1: lhead, iiim汩日址L引用双端口(8WD和1BOOO)遮免其中某个被占用;右oscrip-t daEi_LTLerrta cieat eElenent (nscriptr,J , 4-oscript. src Thi七口: J1口umlhcimt: 1B0匚LdDDfun。?, j l”口:ri口rit尸“ :Iheaii Ltiseri Before ( uscrLptj heada first Child ) ;图(3-1)云打印JS文件的优先级以上引用方法的参数priority设置的是优先级,优先级值是从0开始的阿拉伯数字,数 字越大,优先级越高,默认是0。当一个页面按后
12、续章节同时引用多个云主机时,优先级设置 很关键,否则会按下载顺序来处理。加载多个云打印JS文件如果一个页面通过以上语句同时引用了俩云主机,通常后一个引用会覆盖前一个引用, 其先后顺序是以下载js速度快慢为准,此时如果页面希望其中一个引用有更高的优先级,可 以用url参数priority来控制,该参数值越大优先级越高,默认值为0,例如:这也是C-Lodop默认安装例子演示时,既可以让手机浏览器访问,也可以让电脑访问的神奇 原因。如果希望页面的两个引用同时存在(不相互覆盖),则需要用url的参数name来区分,例 如:此时调用打印时,不再用LODOP这个默认的JS变量名,而是用LODOPA或LOD
13、OPB,二者分别 向不同的云主机发打印指令,LODOPA指向192.168.1.1,而LODOPB指向192.168.1.2,以此 类推。获取LODOP对象引用以上js文件后,就可以在页面程序里通过getCLodop(注意:如果C-Lodop与Lodop按图 1搭配使用,要使用Lodopfuncs.js示中的getLodop其中就包含了getCLodop语句的调用)函数获取主 对象,赋值给一个普通JS变量,为了兼容已经开发好的打印程序,仍然统一用LODOP这个变 量名:var LODOP二getCLodop();有了该对象之后,就可以调用云打印功能语句了,如LODOP.PRINT();LODO
14、P.PREVIEW();LODOP.PRINT_DESIGN();更多语句参考后面的功能函数介绍。四、功能函数C-Lodop的功能函数几乎涵盖了 Lodop的所有语句,它们的详细功能说明参考WEB打 印控件Lodop技术手册。除此之外,新增了部分与页面整合相关的函数和属性,还有个别 语句的参数值有所扩展,详解如下:Create_Printer_List作用:C-Lodop函数之一,获得云主机链接的所有打印机名单,并添加到当前页面某个Select标签元素中。Lodop控件无该同名函数。格式: Create_Printer_List(oElement);参数:oElement目标对象(已经存在的某
15、个Select标签元素)举例:CLODOP.Create_Printer_List(document.getElementById(Select01);Create_PageSize_List作用:C-Lodop函数之一,获得目标打印机所拥有的纸张类型名单,并添加到当前页面某个Select标签对象元素中。Lodop控件无该同名函数。格式: Create_PageSize_List(oElement, iPrintIndex);参数:oElement目标对象(已经存在的某个Select标签元素)iPrintIndex目标打印机在windows系统内的序号(操作系统对所添加打印机的顺序编号,从0开
16、始)举例:CLODOP.Create_PageSize_List(document.getElementById(Select03), 2);On_Return作用:C-Lodop属性之一,设置那些需要返回结果的动作语句在获得结果时触发的回调函数。Lodop控件无该同名函数。格式:On_Return=function(TaskID,Value).;说明:和Lodop相比,C-Lodop的动作语句不再立即返回执行结果,而是返回一个任务编号, 页面程序在回调函数中通过该编号来区分是哪个语句返回的结果,并根据结果值在该 回调函数中进行下一步的处理。参数:TaskID后续动作语句的任务编号,进一步参考
17、后面On_Return_Remain的使用。Valu e该动作语句返回的结果值,类型为逻辑真假值或字符串值。举例:.LODOP.On_Return=function(TaskID,Value)if (Value) alert。巳发出实际打印命令! ); else alert(放弃打印!); ;LODOP.PRINTA();/这是一个典型的动作语句On_Return_Remain作用:C-Lodop属性之一,让所设置的回调函数持续保留,对后续多个动作都有效。Lodop 控件无该同名函数格式:On_Return_Remain=真假值;说明:正常情况下,回调函数执行完毕后会自动销毁(也就是本属性默认
18、值是false),而本 属性设置为真值就可以阻止其销毁,从而让后面的所有动作语句都触发同一个回调函 数,在回调函数中用TaskID的值来区分是哪个动作触发的回调。举例:var TaskID1,TaskID2LODOP. On_Return_Remain=true;LODOP.On_Return=function(TaskID,Value)if (TaskID= TaskID1) alert(判断是否打印成功的结果是:”+ Value) else if (TaskID= TaskID2) alert(判断打印任务是否还存在的结果是:+ Value);TaskID1=LODOP.GET_VYLUE
19、(PRINT_STATUS_OK”,P_ID);TaskID2=LODOP.GET_AALUE(PRINT_STATUS_EXIST,P_ID);On_CLodop_Opened作用:C-Lodop属性之一,该事件在页面websocket建立完毕并准备好时触发。Lodop控件 无该同名函数。格式:On_ CLodop_Opened =function(Opener);说明:页面程序可以把调用打印的过程放在该事件中,避免因为过早打印造成“C-Lodop未 准备好”的频繁提示,同时也能尽快打印。事件触发正常工作之后,建议重置该属性 为 null。举例1:if (needCLodop() windo
20、w.On_CLodop_Opened=function()OpenPreview();执行打印预览window.On_CLodop_Opened=null; elsewindow.onload = function()OpenPreview();举例2:页面引用多个C-Lodop时,window.On_CLodop_Opened加Opener参数区分,例如; window.On_CLodop_Opened=function(Opener)if (Opener=CLODOPA) alert(CLODOPA 打开了”);else alert(是另一个打开 了”);demoCreateCLodopJ
21、Sscript作用: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);与前面
22、说的在页面能同时引用多个云主机相比,本函数的动态选择比较常见,毕竟客户 输出的目标打印机往往是很明确的。PREVIEW作用:打印预览语句扩展了三个参数oView,iW,iH格式:PREVIEW(oView,iW,iH)功能:以某种样式进行打印预览。参数:参数值及其含义oView:让预览窗口内含在当前页面内(而不是弹窗),这里的“内含”不同于插件“内嵌”模式,进一步的内含样式有如下几种可选:_dialog:弹出对话框_blank :新窗口_self:在本窗口_top :新窗口_parent:本窗口具体ID值:在某个现有iframe元素内(需要提前在页面内增加该iframe)iW:预览窗口显示时的
23、宽度值(px);iH:预览窗口显示时的高度值(px);举例:LODOP.PREVIEW(_blank );/在新的浏览器窗口显示打印预览(注意浏览器阻止设置对其仍然有效)LODOP.PREVIEW(001);/在 ID 等于“001” 的 iframe 元素内显示打印预览HTTPS_STATUS作用:判断是否安装了 C-Lodop服务的变量值。Lodop控件无该同名函数。格式:HTTPS_STATUS功能:支持安全通讯协议https,默认端口是8443,采用单独的安装程序,仅支持localhost域 名;页面通过CLODOP.HTTPS_STATUS属性判断是否安装https服务:参数:参数值
24、及其含义0-没安装1-己安装2-安装且已启动。举例:if (CLODOP.HTTPS_STATUS=1) (alert(本地已安装 https 版 C-Lodop !); elsealert(本地安装的不是https版C-Lodop !);Lodop 6218 发行包里包含install_lodop32.exe ”、“install_lodop64.exe ”、 “CLodopPrint_Setup_for_Win32NT.exe ”这3个安装文件和50个小例子及其JS文件。文件 “CLodopPrint_Setup_for_Win32NT.exe ”是云打印 “C-Lodop”的主安装文件,
25、如 果是配合部署需三个文件(见图1),如果单独部署只需这一个文件。由于云打印兼容控件传统语句,所以开发者要把自己的web系统由Lodop6.1xx升级到新 版本(6.2xx+云打印)还是比较容易的,升级主要步骤有三个:第一、更新Lodopfuncs.js这个文件。这虽说是一个js例子,但对多数人来说最好直接使用 它,此前已经自行编写getLodop过程的开发者需要理解本次变化后充实改进一下。其变化主 要是增加了判断哪些浏览器调用传统控件,哪些浏览器调用C-Lodop云打印,并动态添加支 持云打印的新js文件。如果升级为全面采用云打印(不再使用控件),即单独部署C-Lodop云打印,可修改如下
26、函数直接返回true源代码如下(注意红色代码变化):/=判断是否需要安装CLodop云打印服务器:=function needCLodop()tryvar ua=navigator.userAgent;if (ua.match(/WindowssPhone/i) !=null) return true;if (ua.match(/iPhone|iPod/i) != null) return true;.;return false; catch(err) return true;修改后如下:/=判断是否需要安装CLodop云打印服务器:=function needCLodop()tryretur
27、n true; catch(err) return true;第二、C-Lodop语句对字母大小写敏感,要求大写。此前控件例子中虽然都是大写,但小写 或混合也是勉强可以的,但现在不行了,必须全是大写,例如LODOP.PRINT ()写成LODOP.print() 是非法的。第三、云打印语句返回结果的方式不一样,要指定回调函数。此前控件语句本身会“同步返 回结果,而新的云打印前后指令不在同一个程序进程里,所以采用“异步回调函数”,函数 名叫On_Return。这个改动涉及面稍广,但做起来也不难,参考如下举例(样例4),只需在 原来(蓝色)代码前面增加这段新(红色)代码,如此以来就可以让页面程序同
28、时兼顾老版本控 件和新的云打印:if (LODOP.CVERSION) 用CVERSION属性判断是否云打印 LODOP.On_Return=function(TaskID,Value)if (Value) alert (已发出实际打印命令!); else alert(放弃打印!); ;LODOP.PRINTA();return;if (LODOP.PRINTA()alert(已发出实际打印命令); elsealert(放弃打印”);六、https 调用 C-LodopC-Lodop云打印支持https协议,需要安装特殊版本,该版本的安装和端口详情如下:安装文件文件名称:CLodop_Setu
29、p_for_Win32NT_https_2.112.exe;注意文件名称中包含https字样。服务端口默认情况下http服务和https服务的端口差值443,即:http服务端口默认8000;https服务端口默认8443;端口 8443与其他服务冲突时,自动变大。页面引用方式举例如下:注意其中域名必须是localhost (不能是127.0.0.1或具体ip地址);引用方式也可以动态添加,动态加载方法可参考 第三部分“调用”。进入https服务欢迎页进入欢迎首页参考图2-1、2-2,如果出现如下图6-1所提示的红框,则说明C-Lodop云打印https服务已启 动。跃1 膺向 T* http
30、/zigzi 网 Laooty支片饵磴e 查钗j攻衲A) l-fem 艳刖H)冶 宿圆质图百度一下,舸统晅3凝同站囹 能-下.舸御i中以也可以天等任H匚平地,定牙口JM1二LOgp目巾畋工员。三任1用底于川饪花司回1:吁IK恒应所巨冈豆案0巨】耳用GLMOP很简单r任页面曲的书曲如下笛授的格文件,就可以向本版务岌打f|谄求了 ;: script sk http J/132.168.1.3:8000fCLodopfunc3.j3 如果C-Bd叩。睦去浪底PC本地,页面则用103111显诚1既0.。.1向段送打印请求:cscri pt sre- http :/loc alhost:8 QLtjCL
31、otfc pfunc s.jsX/sc npt正丽I.用以上依之宜,就可良谖用Lotto隋咐能,制ZM5执行如下经蛔吾句1注旁区会大1写渲看刘果:va r st rHTML=dz con.enc . gecEleine 3E yl agNam-s n hcnl, | , izinex EiTML;LODOP . PRrKT_IlffITA lr lr 770r 660r 呗试仲直 E 能7 LODOP. ADL_PRIiTT_TE2CI (10, 60r 300r ZO r 11IJiltftlj 下面是超空市:叮:LOD0P.13C、,5,邮3L0。七-口aD%strHn-IL) ?LODO
32、P PREVIEW ()7F面是远程打印的皇见四步薮:桀一咨选逐歪主机*木机方式1 ; http: RocIhost,8DQWC Ludopfuncs侥 2第二褒选知印机.|L5otSM74。Pimw v篥序选邮薄 I点击链接可转到畏后是皿g苞,或者不丽京而宜接打印/ h t.t.ps服务欢迎页一,默认情况下,只要能访祠本页.郡可I班过本好新打印机翩出,.为了回止四生琦求, 管专箱可以W在里为guE5lffl,亡室置二J耍(字金毒用admin鸟祐登录 初始密袒者空).三、本服凳任iNip幡口是即DC ;安全t*议业j请口呈羽43端ZI;中封时会自动空大.四,嬖f 免堂打印服务钦件.炯以任期使用
33、.但木能用来商田发机五、如果出现故障,互以点它里直直基盈信息.剧言膳用耳丈现LEW*传蔬何于(图 6-1)安装后的运行文件在http标准运行文件(参考第5页)基础上增加了 5个文件,如下:1. 证书管理和安装:certmgr32.exe;2. SSL 证书 key: localhost32.key;3. SSL 证书文件:localhost32.crt;4. https 服务辅助文件:libeay32.dll;5. https 服务辅助文件:ssleay32.dll。判断https服务页面程序通过CLODOP.HTTPS_STATUS属性判断是否安装https服务:0-没安装1-已安装2-安装且已启动。例如:if (CLODOP.HTTPS_STATUS=undefined | | CLODOP.HTTPS_STATUS1) alert(请安装C-Lodop的https服务版本(特别版本)!”);七、特注由于运行在云端,所以C-Lodop不支持预览或设计窗口的前端内嵌功能,需要这项功能 的业务系统,升级时最好兼顾“控件(插件)+云打印”,以便操作者根据需要选用支持插件的 浏览器。尽管有此缺憾,但C-Lodop构思巧妙,未来前景远大,以后会发布带更多精彩功能 的版本,甚至让最终用户能直接使用,满足“移动设备+Wifi+普通打印”的迫切需要。完