Lodop技术手册6215.docx
《Lodop技术手册6215.docx》由会员分享,可在线阅读,更多相关《Lodop技术手册6215.docx(88页珍藏版)》请在冰豆网上搜索。
Lodop技术手册6215
WEB打印控件Lodop技术手册
Ver6.2.1.5
Email:
gungho999@
QQ:
932131686
梦泰尔软件(中国)
MTSoftware(CN)
目录
一、概述1
二、系统文件1
install_lodop32.exe和install_lodop64.exe1
LodopFuncs.js2
三、控件参数6
Caption6
Color6
Border6
四、功能函数7
1、基本函数7
VERSION7
PRINT_INIT7
SET_PRINT_PAGESIZE8
ADD_PRINT_HTM9
ADD_PRINT_TABLE10
ADD_PRINT_URL11
ADD_PRINT_TEXT12
ADD_PRINT_IMAGE13
ADD_PRINT_RECT13
ADD_PRINT_ELLIPSE14
ADD_PRINT_LINE15
ADD_PRINT_BARCODE16
ADD_PRINT_CHART17
ADD_PRINT_DATA18
SET_PRINT_STYLE19
PREVIEW20
PRINT21
PRINT_SETUP21
PRINT_DESIGN21
NEWPAGE22
GET_PRINTER_COUNT22
GET_PRINTER_NAME22
SET_PRINTER_INDEX23
SELECT_PRINTER24
SET_SHOW_MODE24
SET_PRINT_MODE27
SET_PRINT_COPIES29
SET_PREVIEW_WINDOW30
ADD_PRINT_SETUP_BKIMG30
SEND_PRINT_RAWDATA31
WRITE_PORT_DATA31
READ_PORT_DATA31
GET_PRINT_INIFFNAME32
GET_PAGESIZES_LIST32
WRITE_FILE_TEXT32
GET_FILE_TEXT33
GET_FILE_TIME33
IS_FILE_EXIST34
GET_SYSTEM_INFO34
GET_VALUE35
FORMAT38
GET_DIALOG_VALUE40
2、扩展函数41
PRINT_INITA41
ADD_PRINT_HTML41
ADD_PRINT_TBURL42
ADD_PRINT_TEXTA42
SET_PRINT_STYLEA42
SAVE_TO_FILE48
SET_SAVE_MODE48
ADD_PRINT_SHAPE50
SET_PRINTER_INDEXA51
NEWPAGEA51
PREVIEWA51
PREVIEWB52
PRINTA52
PRINTB52
SHOW_CHART53
DO_ACTION53
SET_LICENSES54
五、软件使用权注册55
六、打印维护和打印设计56
七、使用样例57
八、计量单位58
一、概述
Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能强大且短小精悍,开创WEB打印开发的新局面。
设计者对WEB下的打印需求进行了分类汇总,高度抽象,构思出仅用几个功能函数,就可实现复杂的打印任务,尽量避免由此引起的知识累赘。
控件发布包有3个系统文件组成,主要功能用3个控件参数和2组功能函数来实现。
尽管Lodop有个理想化的目标,那就是不用详细了解这些参数或函数,仅仅看懂几个样例就能很轻松地开始使用,控件为此提供了一个足够完善的设计界面,用它可以实现大多数打印开发任务,但事实上深入了解这些参数和函数总是有好处的,特别是当您的开发任务很复杂时,这就是本文目的,但愿本文档足够详细且简单明了。
如果此前曾看过lodop发行包里的入门样例,本文会更容易理解。
二、系统文件
Lodop发布包内主要有如下三个安装文件:
1.install_lodop32.exe
2.install_lodop64.exe
3.CLodopPrint_Setup_for_Win32NT.exe
前两个是打印控件安装文件,第三个是云打印服务安装文件。
建议页面综合部署,即部分浏览器采用控件,另外浏览器采用云打印,该选择过程由LodopFuncs.js里的needCLodop();引导实现。
C-Lodop云打印32位安装文件可以适用于32位或64位操作系统,更详细的安装使用请参考《云打印C-Lodop技术手册》。
下载地址:
http:
//www.c-
install_lodop32.exe和install_lodop64.exe
这俩文件是lodop控件安装和升级的主程序文件,其中install_lodop32.exe适用于32位浏览器,install_lodop64.exe适用于64位浏览器,提供给用户或开发者下载安装,如果不特意拦截一般都能100%安装,对“网页插件安装难”有彻底改善。
如果将其复制或改名为uninstall_lodop32.exe(或uninstall_lodop64.exe)就可用来卸载控件。
Lodop安装后,在操作系统ProgramFiles\MountTaiSoftware\Lodop目录下会生成两个实体文件:
CAOSOFT_WEB_PRINT_LODOP.OCX和NPCAOSOFT_WEB_PRINT_LODOP.DLL
前一个是标准OCX文件,它是Lodop的功能核心,后者是一个NPPlugin文件,其作用是实现多浏览器支持。
目前Lodop支持IE系列、IE内核系列(遨游、360、世界之窗、腾讯TT、搜狗等)浏览器,以及Firefox(火狐)系列、Chrome(谷歌)系列、Opera系列、Safari系列等Windows下几乎所有的浏览器,通过云打印。
安装程序文件有几个预定参数:
-waitXX该参数设置安装程序运行完毕后自动关闭窗口,这里的XX表示关闭前等待的秒数,如果是0秒则安装(或卸载)成功后立即关闭,例如:
–wait8
-nowindow该参数设置安装程序运行时不出现界面窗口(所谓的静默安装)。
-un该参数使程序执行卸载操作,优先于文件名。
-in该参数使程序执行安装操作,优先于文件名。
安装界面如下:
LodopFuncs.js
该文件是用来引导安装控件的一个JS文件,是个样例,但建议直接采用。
其中getLodop的任务是判断当前浏览器的类型并决定采用哪个对象实例,并检测控件是否安装、是否最新版本、并引导安装或升级,加入了兼容C-Lodop云打印的检测信息。
文件主要内容如下:
//===判断是否需要安装CLodop云打印服务器(针对不支持np插件的浏览器)===
functionneedCLodop(){
try{
varua=navigator.userAgent;
if(ua.match(/Windows\sPhone/i)!
=null)returntrue;
if(ua.match(/iPhone|iPod/i)!
=null)returntrue;
if(ua.match(/Android/i)!
=null)returntrue;
if(ua.match(/Edge\D?
\d+/i)!
=null)returntrue;
if(ua.match(/QQBrowser/i)!
=null)returnfalse;
varverTrident=ua.match(/Trident\D?
\d+/i);
varverIE=ua.match(/MSIE\D?
\d+/i);
varverOPR=ua.match(/OPR\D?
\d+/i);
varverFF=ua.match(/Firefox\D?
\d+/i);
varx64=ua.match(/x64/i);
if((verTrident==null)&&(verIE==null)&&(x64!
==null))
returntrue;else
if(verFF!
==null){
verFF=verFF[0].match(/\d+/);
if(verFF[0]>=42)returntrue;
}else
if(verOPR!
==null){
verOPR=verOPR[0].match(/\d+/);
if(verOPR[0]>=32)returntrue;
}else
if((verTrident==null)&&(verIE==null)){
varverChrome=ua.match(/Chrome\D?
\d+/i);
if(verChrome!
==null){
verChrome=verChrome[0].match(/\d+/);
if(verChrome[0]>=42)returntrue;
};
};
returnfalse;
}catch(err){returntrue;};
};
…
//====获取LODOP对象的主过程:
====
functiongetLodop(oOBJECT,oEMBED){
…
varLODOP;
try{
…
if(LODOP.VERSION<"6.2.0.3"){
if(needCLodop())
document.documentElement.innerHTML=strCLodopUpdate+document.documentElement.innerHTML;else
if(is64IE)document.write(strHtm64_Update);else
if(isIE)document.write(strHtmUpdate);else
document.documentElement.innerHTML=strHtmUpdate+document.documentElement.innerHTML;
returnLODOP;
};
//===如下空白位置适合调用统一功能(如注册语句、语言选择等):
===
//===========================================================
returnLODOP;
}catch(err){alert("getLodop出错:
"+err);};
};
其中的关键点是VERSION函数,Lodop提供了这个“读版本号”功能,这样控件的安装和升级任务就交给JS来实现,以下是控件在页面内的调用代码,其中包含getLodop的使用:
varLODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));
…
以上两段代码相互配合实现了Lodop的安装、调用和升级。
之所以将LodopFuncs.js作为一个资源文件来部署,既可以利用浏览器的缓存减少页面内容的重复下载,同时还实现了控件发布统一管理,整个应用系统中只要这一个地方发布Lodop。
其它页面直接拷贝嵌入第2段代码就可以了。
三、控件参数
Lodop有如下控件参数,以页面object对象元素的参数形式使用:
Caption
名称:
设置控件的显示标题
格式:
功能:
控件在页面内一般是以object元素形式被引用。
可以通过设置元素的width和height等于0来隐藏控件,不隐藏时可以为控件设置一个标题,以便于看到控件是否被正确安装,以及控件对象在页面内的位置。
希望打印预览界面或设计界面内嵌到网页内时,本参数很有用。
Color
名称:
设置控件的显示区域颜色
格式:
功能:
通过该参数设置控件显示区域的底色,对于希望打印预览界面或设计界面内嵌到网页内时,本参数可以让控件容易融于整体页面。
参数值采用超文本颜色形式,可以是三色16进制值组合,也可以是英文颜色名。
Border
名称:
设置控件的显示区域边界
格式:
功能:
通过该参数设置控件显示区域的边界,值等于1表示有边界,否则无边界。
本参数可以让控件更融于整体页面。
四、功能函数
Lodop的功能函数不多,但参数比较复杂。
全部函数分“基本函数”和“扩展函数”两类,两类函数有类似性,基本函数使用简单,达不到要求时请使用扩展函数,二者无本质区别。
1、基本函数
VERSION
名称:
获得软件版本号
格式:
VERSION
结果:
返回字符型结果
版本号有四个数字组成,样式为:
X.X.X.X
举例:
varstrVersion=LODOP.VERSION;
PRINT_INIT
名称:
打印初始化
格式:
PRINT_INIT(strTaskName)
功能:
初始化运行环境,清理异常打印遗留的系统资源,设定打印任务名。
参数:
strTaskName:
打印任务名,字符型参数,由开发者自主设定,未限制长度,字符要求符合Windows文件起名规则,Lodop会根据该名记忆相关的打印设置、打印维护信息。
若strTaskName空,控件则不保存本地化信息,打印全部由页面程序控制。
结果:
返回逻辑值
返回逻辑真表示初始化成功,逻辑假表示初始化失败,失败原因有:
前一个打印事务没有完成;操作系统没有添加打印机(驱动)等。
建议或要求:
该函数与PRINT_INITA都有初始化功能,每个打印事务至少初始化一次,建议打印程序首先调用该函数。
任务名要尽量区别于其它打印任务,譬如用“XX单位_XX管理信息系统_XX子系统_XX模块_XX打印作业”字样。
不希望最终用户更改打印布局时,则设strTaskName空。
举例:
LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_表单一");
LODOP.PRINT_INIT("");
SET_PRINT_PAGESIZE
名称:
设定纸张大小
格式:
SET_PRINT_PAGESIZE(intOrient,PageWidth,PageHeight,strPageName)
功能:
设定打印纸张为固定纸张或自适应内容高,并设定相关大小值或纸张名及打印方向。
参数:
intOrient:
打印方向及纸张类型,数字型,
1---纵(正)向打印,固定纸张;
2---横向打印,固定纸张;
3---纵(正)向打印,宽度固定,高度按打印内容的高度自适应;
0(或其它)----打印方向由操作者自行选择或按打印机缺省设置;
PageWidth:
设定自定义纸张宽度,整数或字符型,整数时缺省长度单位为0.1mm,譬如该参数值为45,则表示4.5毫米。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅),如“10mm”表示10毫米。
数值等于0时本参数无效。
PageHeight:
固定纸张时设定纸张高;高度自适应时设定纸张底边的空白高。
整数或字符型,整数时缺省长度单位为0.1毫米。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅),如“10mm”表示10毫米。
数值等于0时本参数无效。
宽或高无效时下面的strPageName才起作用。
strPageName:
所选纸张类型名,字符型。
不同打印机所支持的纸张可能不一样,这里的名称同操作系统内打印机属性中的纸张名称,支持操作系统内的自定义纸张。
关键字“CreateCustomPage”会按以上宽度和高度自动建立一个自定义纸张,所建立的纸张名固定为“LodopCustomPage”,多次建立则刷新该纸张的大小值。
注:
PageWidth、PageHeight和strPageName都无效时,本函数对纸张大小不起作用,控件则采用所选打印机的默认纸张,但intOrient仍可起作用。
实际打印时,控件按如下优先级顺序确定纸张大小:
第1优先是打印维护里纸张属性(“本机自行定义纸张”)设置的纸张大小。
第2优先是SET_PRINT_PAGESIZE指定的纸张大小;
第3优先是上次打印时在预览界面设置里选择的纸张类型;
第4是按所选打印机的默认纸张;
结果:
无
建议或要求:
打印初始化之后调用。
如果打印纸张不固定,希望由操作者自主选择纸张时,则不要调用本函数。
举例一:
LODOP.SET_PRINT_PAGESIZE(1,2100,2970,"");
设置纸张大小为:
宽210mm*高297mm,纵向打印
举例二:
LODOP.SET_PRINT_PAGESIZE(2,0,0,"A4");
设置纸张为A4(按操作系统定义的A4尺寸),横向打印
ADD_PRINT_HTM
名称:
增加超文本打印项(普通模式)
格式:
ADD_PRINT_HTM(Top,Left,Width,Height,strHtmlContent)
功能:
增加超文本打印项,设定该打印项在纸张内的位置和区域大小,实现超文本控制打印。
参数:
Top:
打印项在纸张内的上边距,也就是在每张纸的上下起点位置,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
Left:
打印项在纸张内的左边距,也就是在每张纸的左右起点位置,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
Width:
打印区域的宽度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。
Height:
打印区域的高度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,当内容的高度超出本参数值时,控件会自动分页,后面的内容在下一页对应位置输出。
本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。
strHtmlContent:
超文本代码内容,字符型,未限制长度。
可以是一个完整的页面超文本代码,或者是一个代码段落,也可以是URL:
web地址形式的URL地址。
Lodop专有样式和属性有:
●代码中若包含style="page-break-after:
always"或style="page-break-before:
always",该元素称为“强制分页元素”,控件会在该元素处分页。
●代码中的标签IMG如果有transcolor属性,则可以实现透明打印图片。
例如属性格式为:
transcolor="#FFFFFF"表示用白色作为透明底色,这里的颜色值可以是“#”加三色16进制值组合,也可以是英文颜色名。
这个专有属性再配合IMG的position:
absolute可以实现“先字后章”的公章打印效果。
●代码中的元素如果包含borderthin属性,如果属性值等于true,则该元素的border在合并单元格时会采用单细线模式。
结果:
无
建议或要求:
要求在打印初始化后使用,建议在画线类函数之后调用。
注意“强制分页元素”要符合xhtml规范,建议用跨整行的元素,内容不能空,内容可以是“ ”。
强制分页符对其它Lodop函数无效,仅适用本函数。
举例一:
LODOP.ADD_PRINT_HTM(0,0,300,100,"
hello");举例二:
LODOP.ADD_PRINT_HTM("10%",0,"100%","80%","URL:
");
举例三:
LODOP.ADD_PRINT_HTM("5mm",34,"RightMargin:
0.9cm","BottomMargin:
9mm",
document.documentElement.innerHTML);
ADD_PRINT_TABLE
名称:
增加表格打印项(超文本模式)
格式:
ADD_PRINT_TABLE(Top,Left,Width,Height,strHtml)
功能:
用超文本增加一个表格打印项,设定该表格在每个纸张内的位置和区域大小。
打印时只输出首个页面元素table的显示内容,当table内包含thead或tfoot时,一旦表格被分页,则每个打印页都输出表头(thead)或表尾(tfoot)。
参数:
Top:
表格数据头(页头thead)在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
Left:
表格数据头(页头thead)在纸张内的左边距,整数或字符型,字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
Width:
打印区域的宽度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。
Height:
表格数据体(tbody)区域的高度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(