Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能足够强大,开创WEB打印开发的新局面。假日国际 是一个很好的打印插件Lodop,它是一个专门针对web页面打印的控件,里面封装了很多的JS API,用户只要根据自己特定的需要调用里面相应的接口,就可以实现各种很复杂的打印的功能,例如记录页面、图片包括复杂的图表等等它都能够帮你实现,在用的过程中,还发现它还能够打印条形码、公章,而且它还能实现将记录导出到一个excel文件当中,无论你的表格多么复杂,它都能帮你实现,而且只需要在前台控制就可以
Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实现复杂的打印任务,尽量减少使用者的知识累赘。控件发布包有3个系统文件组成,全部功能用几个控件参数和2组功能函数来实现。尽管我们有个理想化的目标,那就是您不用详细了解这些参数或函数,仅仅看懂几个样例文件就能很轻松地开始使用本控件,为此Lodop提供了一个足够完善的设计界面,用它可以实现大多数打印开发任务,但事实上了解这些参数和函数总还是有好处的,特别是当您的开发任务很复杂时,这就是本文目的,但愿本文档足够详细且简单明了。
根据相应的操作系统,安装install_lodop32.exe文件,它里面包含两个exe文件install_lodop32.exe和install_lodop.exe,在页面的头部中引入:
当我们在执行操作的时候,它会根据相应的操作系统(32位or位),选择相应的exe文件,下载安装,这个安装文件比较小,所以安装起来也比较方便。卸载它也很简单,只要这个exe文件,然后改名为:uninstall_lodop32.exe,点击运行即可,安装后我们就可以使用里面的JS函数了:
●PRINT_INIT(strPrintTaskName)打印初始化
●SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName)设定纸张大小
●ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight,strHtml)增加超文本项
●ADD_PRINT_TEXT(intTop,intLeft,intWidth,intHeight,strContent)增加纯文本项
●ADD_PRINT_TABLE(intTop,intLeft,intWidth,intHeight,strHtml)增加表格项
●ADD_PRINT_SHAPE(intShapeType,intTop,intLeft,intWidth,intHeight,intLineStyle,intLineWidth,intColor)画图形
●SET_PRINT_STYLE(strStyleName, varStyleValue)设置对象风格
●PREVIEW打印预览
●PRINT直接打印
●PRINT_SETUP打印维护
●PRINT_DESIGN打印设计
最基本的打印过程至少有初始化语句、添内容语句和打印语句三部分组成,例如:
LODOP.PRINT_INIT(打印任务名);//首先一个初始化语句
LODOP.ADD_PRINT_TEXT(0,0,100,20,文本内容一);//然后多个ADD语句及SET语句
LODOP.PRINT();//最后一个打印(或预览、维护、设计)语句
Lodop发布包内主要有如下三个文件:
install_lodop.exe
该文件是控件安装和升级的主文件,提供给用户或开发者下载安装,如果不特意拦截一般都能100%安装,对“网页插件安装难”有一定改善。如果将其或改名为uninstall_lodop.exe (名前加un)就可用其卸载控件。
Lodop安装后,在操作系统目录WINDOWS\system32下会安装一个OCX文件:CAOSOFT_WEB_PRINT_LODOP.OCX,有特殊需要的使用者可以将该文件自主签名,用传统的OCX安装方式发布。
CheckActivX.js
该文件是用来引导安装控件的一个JS文件,是个样例,但建议直接采用。其中CheckLodop的任务是检查控件是否安装、是否最新版本、并引导安装或升级。
npActiveXFirefox4x.xpi
该文件是Firefox浏览器需要的安装附加文件。目前Lodop支持IE系列浏览器、Firefox系列浏览器和IE内核类浏览器(遨游、腾讯TT、麒麟、世界之窗等)及其它支持ActiveX的各类浏览器。
控件的使用方法,作者都已经有详细的使用说明供使用者参考。
但是对于打印表格,确实出现一点小问题,如果表格是自然高度,也就是只设置了table的高度,此时是可以正常显示的,但是如果表格中的td,或者tr的高度有设置值,此时就算显示区域的高度值设置的与表格同高,打印出来的效果是分页,这显然不是我们的初衷。这说明表格的实际高度超出了显示区域。如果将显示区域的高度值远超出表格的高度,才不会分页。
问题出来了:1 如何远超于这个高度值2.表格的真实高度到底是多少呢。
对于问题一,我们只要设置一个尽量大的值就好了,因为打印显示效果是由表格的真实高度决定的,而不这个打印方法中设置的高度决定的。
对于问题二,如果对高度没有定量的掌握,必然无法控制打印出来的效果。此时可以使用dw设计,而且一定要带标尺。此时设计出来的位置与真实效果相差不多了。