Lodop50技术手册.docx
《Lodop50技术手册.docx》由会员分享,可在线阅读,更多相关《Lodop50技术手册.docx(54页珍藏版)》请在冰豆网上搜索。
Lodop50技术手册
WEB打印控件Lodop技术手册
Ver5.0.5.5
Email:
gungho999@
QQ:
932131686
目录
一、概述3
二、系统文件4
install_lodop.exe4
CheckActivX.js4
npActiveXFirefox4x.xpi5
三、控件参数5
Caption5
Color6
Border6
四、功能函数6
1、基本函数6
VERSION6
PRINT_INIT7
SET_PRINT_PAGESIZE7
ADD_PRINT_HTM8
ADD_PRINT_TABLE9
ADD_PRINT_URL10
ADD_PRINT_TEXT11
ADD_PRINT_IMAGE11
ADD_PRINT_RECT12
ADD_PRINT_ELLIPSE13
ADD_PRINT_LINE14
ADD_PRINT_BARCODE14
ADD_PRINT_CHART15
SET_PRINT_STYLE16
NEWPAGE18
PREVIEW18
PRINT19
PRINT_SETUP19
PRINT_DESIGN19
GET_PRINTER_COUNT19
GET_PRINTER_NAME20
SET_PRINTER_INDEX20
SELECT_PRINTER20
SET_SHOW_MODE21
SET_PRINT_MODE23
SET_PREVIEW_WINDOW23
ADD_PRINT_SETUP_BKIMG24
SEND_PRINT_RAWDATA24
WRITE_PORT_DATA24
READ_PORT_DATA25
GET_PRINT_INIFFNAME25
WRITE_FILE_TEXT25
GET_FILE_TEXT26
GET_FILE_TIME26
IS_FILE_EXIST27
GET_SYSTEM_INFO27
2、扩展函数28
PRINT_INITA28
ADD_PRINT_HTML29
ADD_PRINT_TBURL29
ADD_PRINT_TEXTA29
SET_PRINT_STYLEA29
SAVE_TO_FILE32
SET_SAVE_MODE32
SET_PRINT_TEXT_STYLEA33
ADD_PRINT_SHAPE34
SET_PRINTER_INDEXA35
PREVIEWA35
PREVIEWB36
PRINTA36
PRINTB36
SHOW_CHART36
SET_LICENSES37
五、软件使用权注册37
CompanyName37
License38
LicenseA38
LicenseB38
六、打印维护和打印设计38
七、使用样例38
八、计量单位39
一、概述
Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能足够强大,开创WEB打印开发的新局面。
Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实现复杂的打印任务,尽量减少使用者的知识累赘。
控件发布包有3个系统文件组成,全部功能用几个控件参数和2组功能函数来实现。
尽管我们有个理想化的目标,那就是您不用详细了解这些参数或函数,仅仅看懂几个样例文件就能很轻松地开始使用本控件,为此Lodop提供了一个足够完善的设计界面,用它可以实现大多数打印开发任务,但事实上了解这些参数和函数总还是有好处的,特别是当您的开发任务很复杂时,这就是本文目的,但愿本文档足够详细且简单明了。
如果此前曾看过lodop的入门样例程序,本文会更容易理解!
二、系统文件
Lodop发布包内主要有如下三个文件:
install_lodop.exe
该文件是控件安装和升级的主文件,提供给用户或开发者下载安装,如果不特意拦截一般都能100%安装,对“网页插件安装难”有一定改善。
如果将其复制或改名为uninstall_lodop.exe(名前加un)就可用其卸载控件。
Lodop安装后,在操作系统目录WINDOWS\system32下会安装一个OCX文件:
CAOSOFT_WEB_PRINT_LODOP.OCX,有特殊需要的使用者可以将该文件自主签名,用传统的OCX安装方式发布。
CheckActivX.js
该文件是用来引导安装控件的一个JS文件,是个样例,但建议直接采用。
其中CheckLodop的任务是检查控件是否安装、是否最新版本、并引导安装或升级。
文件内容如下:
functionCheckLodop(){
varoldVersion=LODOP.Version;
newVerion="5.0.3.4";
if(oldVersion==null){
document.write("
打印控件未安装!点击这里执行安装,安装后请刷新页面。
");
if(navigator.appName=="Netscape")
document.write("
(Firefox浏览器用户需先点击这里安装运行环境)
");
}elseif(oldVersiondocument.write("
打印控件需要升级!
点击这里执行升级,升级后请重新进入。
");
}
其中的关键点是Version函数,Lodop提供了一个“读版本号”功能,这样控件的安装和升级任务就交给JS来实现,以下是控件在页面内的调用代码,其中包含CheckLodop的利用:
CheckLodop();
…
以上两段代码相互配合实现了Lodop的安装、调用和升级。
之所以将CheckActivX.js作为一个资源文件来部署,既可以利用浏览器的缓存减少页面内容的重复下载,同时还实现了控件发布统一管理,整个应用系统中只要这一个地方发布Lodop。
其它页面直接拷贝嵌入第2段代码就可以了。
npActiveXFirefox4x.xpi
该文件是Firefox浏览器需要的安装附加文件。
目前Lodop支持IE系列浏览器、Firefox系列浏览器和IE内核类浏览器(遨游、腾讯TT、麒麟、世界之窗等)及其它支持ActiveX的各类浏览器。
三、控件参数
Lodop有如下控件参数,以网页插件(ActiveX)参数形式使用:
Caption
名称:
设置打印控件的显示标题
格式:
功能:
打印控件在页面内一般是以object元素形式被引用。
可以通过设置元素的width和height等于0来隐藏控件,不隐藏时可以为控件设置一个标题,以便于看到控件是否被正确安装,以及控制对象在页面内的位置。
希望打印预览界面或设计界面内嵌到网页内时,本参数显然很有用。
Color
名称:
设置打印控件的显示区域颜色
格式:
功能:
通过该参数设置控件显示区域的底色,对于希望打印预览界面或设计界面内嵌到网页内时,本参数显然可以让控件容易融于整体页面。
参数值采用超文本颜色形式,可以是三色16进制值组合,也可以是英文颜色名。
Border
名称:
设置打印控件的显示区域边界
格式:
功能:
通过该参数设置控件显示区域的边界,值等于1表示有边界,否则无边界。
本参数显然可以让控件更融于整体页面。
另外,控件还有三个用于注册的辅助参数,参考后面《软件使用权注册》一节。
四、功能函数
Lodop的功能函数不多,但参数比较复杂。
全部函数分“基本函数”和“扩展函数”两类,两类函数有类似性,基本函数使用简单,达不到要求时请使用扩展函数,二者无本质区别。
1、基本函数
VERSION
名称:
获得软件版本号
格式:
VERSION
结果:
返回字符型结果
版本号有四个数字组成,样式为:
X.X.X.X
PRINT_INIT
名称:
打印初始化
格式:
PRINT_INIT(strTaskName)
功能:
初始化运行环境,清理异常打印遗留的系统资源,设定打印任务名。
参数:
strTaskName:
打印任务名,字符型参数,由开发者自主设定,未限制长度,字符要求符合Windows文件起名规则,Lodop会根据该名记忆相关的打印设置、打印维护信息。
若strTaskName空,控件则不保存本地化信息,打印全部由页面程序控制。
结果:
返回逻辑值
返回逻辑真表示初始化成功,逻辑假表示初始化失败,失败原因有:
前一个打印事务没有完成;操作系统没有打印机(驱动)等。
建议或要求:
该函数与PRINT_INITA都有初始化功能,每个打印事务至少初始化一次,建议打印程序首先调用该函数。
任务名要尽量区别于其它打印任务,譬如用“XX单位_XX管理信息系统_XX子系统_XX模块_XX打印作业”字样。
不希望最终用户更改打印布局时,则设strTaskName空。
SET_PRINT_PAGESIZE
名称:
设定纸张大小
格式:
SET_PRINT_PAGESIZE(intOrient,PageWidth,PageHeight,strPageName)
功能:
设定打印纸张为固定纸张或自适应内容高,并设定相关大小值或纸张名及打印方向。
参数:
intOrient:
打印方向及纸张类型,数字型,
1---纵(正)向打印,固定纸张;
2---横向打印,固定纸张;
3---纵(正)向打印,宽度固定,高度按打印内容的高度自适应;
0(或其它)----打印方向由操作者自行选择或按打印机缺省设置;
PageWidth:
设定自定义纸张宽度,整数或字符型,整数时缺省长度单位为0.1毫米。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米。
纸张宽,单位为0.1mm譬如该参数值为45,则表示4.5mm,计量精度是0.1mm。
PageHeight:
固定纸张时设定纸张高;高度自适应时设定纸张底边的空白高。
整数或字符型,整数时缺省长度单位为0.1毫米。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米。
高小于等于0时strPageName才起作用。
strPageName:
设为标准纸张,纸张类型名,字符型,只能在如下名称中选择,不限大小写:
Letter,LetterSmall,Tabloid,Ledger,Legal,Statement,Executive,
A3,A4,A4Small,A5,B4,B5,Folio,Quarto,qr10X14,qr11X17,Note,
Env9,Env10,Env11,Env12,Env14,Sheet,DSheet,Esheet
注:
PageWidth、PageHeight和strPageName都无效时,本函数对纸张大小不起作用,控件则采用所选打印机的默认纸张,但intOrient仍可起作用。
如果打印程序未采用扩展方式(PRINT_INITA)初始化,本函数的固定纸张功能所定制的纸张大小,会起到PRINT_INITA中Width和Height的相同功能。
结果:
无
建议或要求:
打印初始化之后调用。
如果打印纸张不固定,希望由操作者自主选择纸张时,则不要调用本函数。
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毫米。
Height:
打印区域的高度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,控件按这个值自动分页。
strHtmlContent:
超文本代码内容,字符型,未限制长度。
可以是一个完整的页面,也可以是代码段。
超文本代码中包含有style="page-break-after:
always"或style="page-break-before:
always"的元素称为“强制分页元素”,控件会在该元素处分页。
结果:
无
建议或要求:
要求在打印初始化后使用,建议在画线类函数之后调用。
注意“强制分页元素”要符合xhtml规范,建议用跨整行的元素,内容不能空,内容可以是“ ”。
强制分页符对其它Lodop函数无效,仅适用本函数。
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毫米。
Height:
表格数据体(tbody)区域的高度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
控件按这个值自动分页。
strHtml:
超文本代码内容,字符型,未限制长度。
可以是一个完整的页面,也可以是代码段,要求至少包含一个table元素。
特别说明:
本函数能识别的超文本专有元素属性有tdata、format、tclass、tindex等四个,它们主要用来实现分页小计、分类合计等统计功能,这四个属性可以用在tfoot元素内的任何子元素上,包含tdata属性的超文本元素下面称为“统计结果元素”,被统计的超文本元素称为“数据元素”,它们的属性值及其含义如下:
①tdata:
设置统计类型,其值和含义为:
subCount---本页行数,即本页该数据列的单元格行数;
subSum---本页合计,即本页该数据列的数值合计;
subAverage---本页平均数,即本页合计除以本页行数;
Count---累计行数,即从第一页到本页的该列行数的累加值;
Sum---累计数,即从第一页到本页的该列数值的累加值;
Average---累计平均数,即累计数除以累计行数;
allCount---总行数,即该列全表的行数;
allSum---总计数,即该列全表的数值总和;
allAverage---总平均数,即全表总计数除以总行数;
pageNO---页号,即本table页的序号(与打印纸张的页号不一定相同);
pageCount---总页数,即全(table)表被分成的总页数;
②format:
设置统计结果的显示格式,其值如下样式:
“0”“0.00””“#.##”“#,##0.00”“0.000E+00”“#.###E-0”等等,其中的“#”表示当数据为0时不显示。
③tclass:
设置分类统计的“类名”,其值可任意设置,在分类统计时,“统计结果元素”和“数据元素”的tclass值必须一致。
④tindex:
一般要求“统计结果元素”的位置与“数据元素”的列位置一致或内含在“数据元素”列内,如果位置无法一致,可以用tindex指定对应的数据列,该值是数字型的列序号,从1起始。
⑤占位符:
一个要显示统计结果的“统计结果元素”必须要包含占位符,占位符是任意个“#”组成的字符串,占位符可以与其它内容混合在一起,当统计结果值较大时,开发者需要注意占位符要占用足够多的位置,除非占位符周围有合理的空白区,避免统计结果与普通内容重叠。
结果:
无
建议或要求:
要求在打印初始化后调用,建议在画线类函数之后调用。
ADD_PRINT_URL
名称:
增加超文本打印项(URL模式)
格式:
ADD_PRINT_URL(Top,Left,Width,Height,strURL)
功能:
按URL地址增加超文本打印项,设定该打印项在纸张内的位置和区域大小。
参数:
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毫米。
Height:
打印区域的高度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
控件按这个值自动分页。
strURL:
页面URL地址,字符型,未限制长度。
结果:
无
建议或要求:
要求在打印初始化后调用,建议在画线类函数之后调用。
ADD_PRINT_TEXT
名称:
增加纯文本打印项
格式:
ADD_PRINT_TEXT(Top,Left,Width,Height,strContent)
功能:
增加纯文本打印项,设定该打印项在纸张内的位置和区域大小,文本内容在该区域内自动折行。
参数:
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毫米。
Height:
打印区域的高度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
strContent:
纯文本内容,字符型,未限制长度。
结果:
无
建议或要求:
要求在打印初始化后调用,建议在画线类函数之后调用。
ADD_PRINT_IMAGE
名称:
增加图片打印项
格式:
ADD_PRINT_IMAGE(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毫米。
Height:
图片的高度,整数或字符型,整数时缺省长度单位为px。
字符型时可包含单位名:
in(英寸)