`
aasonwu
  • 浏览: 35237 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

B/S下基于LODOP控件客户端自动打印小票

 
阅读更多

Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能足够强大,开创WEB打印开发的新局面。

Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实现复杂的打印任务,尽量减少使用者的知识累赘。控件发布包有3个系统文件组成,全部功能用几个控件参数和2组功能函数来实现。


Lodop控件下载网址:http://mt.runon.cn/

一、概述

Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能足够强大,开创WEB打印开发的新局面。

Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实现复杂的打印任务,尽量减少使用者的知识累赘。控件发布包有3个系统文件组成,全部功能用几个控件参数和2组功能函数来实现。

尽管我们有个理想化的目标,那就是您不用详细了解这些参数或函数,仅仅看懂几个样例文件就能很轻松地开始使用本控件,为此Lodop提供了一个足够完善的设计界面,用它可以实现大多数打印开发任务,但事实上了解这些参数和函数总还是有好处的,特别是当您的开发任务很复杂时,这就是本文目的,但愿本文档足够详细且简单明了。

如果此前曾看过lodop的入门样例程序,本文会更容易理解!

二、系统文件

Lodop发布包内主要有如下几个文件:

install_lodop.exe

该文件是控件安装和升级的主文件,提供给用户或开发者下载安装,如果不特意拦截一般都能100%安装,对“网页插件安装难”有一定改善。如果将其复制或改名为uninstall_lodop.exe (名前加un)就可用其卸载控件。

Lodop安装后,在操作系统Program Files\MountTaiSoftware\Lodop目录下会生成两个实体文件:CAOSOFT_WEB_PRINT_LODOP.OCXNPCAOSOFT_WEB_PRINT_LODOP.DLL

前一个文件是OCX文件,后者是NPplugin文件,其作用是实现多浏览器支持。目前Lodop支持IE系列、IE内核系列(遨游、360、世界之窗、腾讯TT、搜狗等)浏览器,以及Firefox(火狐)系列、Chrome(谷歌)系列、Opera系列、Safari系列等Windows下几乎所有的浏览器。

安装程序文件有几个预定参数:

-waitXX该参数设置安装程序运行完毕后自动关闭窗口,这里的XX表示关闭前等待的秒数,如果是0秒则安装(或卸载)成功后立即关闭,例如:–wait8

-nowindow 该参数设置安装程序运行时不出现窗口。

-un 该参数使程序执行卸载操作,参数优先于文件名。

-in 该参数使程序执行安装操作,参数优先于文件名。

安装界面如下:

LodopFuncs.js

该文件是用来引导安装控件的一个JS文件,是个样例,但建议直接采用。其中getLodop的任务是判断当前浏览器的类型并决定采用哪个对象实例,并检测控件是否安装、是否最新版本、并引导安装或升级。文件内容如下:

function getLodop(oOBJECT,oEMBED){

var strHtml1="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='install_lodop.exe'>执行安装</a>,安装后请刷新页面或重新进入。</font>";

var strHtml2="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='install_lodop.exe'>执行升级</a>,升级后请重新进入。</font>";

var strHtml3="<br><br><font color='#FF00FF'>(注:如曾安装过Lodop旧版附件npActiveXPLugin,请在【工具】->【附加组件】中先卸载它)</font>";

var LODOP=oEMBED;

try{

if (navigator.appVersion.indexOf("MSIE")>=0) LODOP=oOBJECT;

if ((LODOP==null)||(typeof(LODOP.VERSION)=="undefined")) {

if (navigator.userAgent.indexOf('Firefox')>=0)

document.documentElement.innerHTML=strHtml3+document.documentElement.innerHTML;

if (navigator.appVersion.indexOf("MSIE")>=0) document.write(strHtml1); else

document.documentElement.innerHTML=strHtml1+document.documentElement.innerHTML;

} else if (LODOP.VERSION<"6.0.0.1") {

if (navigator.appVersion.indexOf("MSIE")>=0) document.write(strHtml2); else

document.documentElement.innerHTML=strHtml2+document.documentElement.innerHTML;

}

//*****如下空白位置适合调用统一功能:*********

//*******************************************

return LODOP;

}catch(err){

document.documentElement.innerHTML="Error:"+strHtml1+document.documentElement.innerHTML;

return LODOP;

}

}

其中的关键点是VERSION函数,Lodop提供了这个“读版本号”功能,这样控件的安装和升级任务就交给JS来实现,以下是控件在页面内的调用代码,其中包含getLodop的使用:

<head>

<title></title>

<script language="javascript" src="LodopFuncs.js"></script>

<object id="LODOP" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>

<embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed>

</object>

</head>

<body>

<script language="javascript">

var LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));

</script>

</body>

以上两段代码相互配合实现了Lodop的安装、调用和升级。之所以将LodopFuncs.js作为一个资源文件来部署,既可以利用浏览器的缓存减少页面内容的重复下载,同时还实现了控件发布统一管理,整个应用系统中只要这一个地方发布Lodop。其它页面直接拷贝嵌入第2段代码就可以了。


打印幅面高度不固定样例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>WEB打印小票样例</title>
<!-- 控件跨浏览器调用类库-->
<script language="javascript" src="LodopFuncs.js"></script>
<!-- 调用LODOP控件代码-->
<object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>
  <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="install_lodop.exe"></embed>
</object>
</head>
<body>
<input type="button" value="打印预览" onclick="printPreview()" />
<!-- 控制打印按钮,自动打印可以直接执行printOrder-->
<input type="button" value="直接打印" onclick="printOrder()" />
<script language="javascript" type="text/javascript"> 
        var LODOP; //声明为全局变量
		function printPreview(){
				//创建小票打印页
		CreatePrintPage();
		//打印预览
		LODOP.PREVIEW();	
			}
		/**
		* 样例函数,服务器确认订单后执行
		*/
	function printOrder() {
			
		//创建小票打印页
		CreatePrintPage();
		//开始打印
		LODOP.PRINT();	
		
	};  		
	function CreatePrintPage(json) {
		//json 创建模拟服务器响应的订单信息对象
		var json = {"title":"XXXXX订单信息", "name":"张三", "phone": "138123456789", "orderTime": "2012-10-11 15:30:15", 
		"orderNo": "20122157481315", "shop":"XX连锁", "total":25.10,"totalCount":6,
		"goodsList":[
		{"name":"菜心(无公害食品)", "price":5.00, "count":2, "total":10.08}, 
		{"name":"菜心(无公害食品)", "price":5.00, "count":2, "total":10.02}, 
		{"name":"旺菜", "price":4.50, "count":1, "total":4.50},
		{"name":"黄心番薯(有机食品)", "price":4.50, "count":1, "total":4.50}
		]
		}	
		var hPos=10,//小票上边距
		pageWidth=580,//小票宽度
		rowHeight=15,//小票行距
		//获取控件对象
		LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM')); 
		//初始化 
		LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_名片");
		//添加小票标题文本
		LODOP.ADD_PRINT_TEXT(hPos,30,pageWidth,rowHeight,json.title);
		//上边距往下移
		hPos+=rowHeight;
		
		LODOP.ADD_PRINT_TEXT(hPos,1,pageWidth,rowHeight,"姓名:");
		LODOP.ADD_PRINT_TEXT(hPos,30,pageWidth,rowHeight,json.name);
		//hPos+=rowHeight; //电话不换行
		LODOP.ADD_PRINT_TEXT(hPos,70,pageWidth,rowHeight,"电话:");
		LODOP.ADD_PRINT_TEXT(hPos,100,pageWidth,rowHeight,json.phone);
		hPos+=rowHeight;
		LODOP.ADD_PRINT_TEXT(hPos,1,pageWidth,rowHeight,"下单时间:");
		LODOP.ADD_PRINT_TEXT(hPos,60,pageWidth,rowHeight,json.orderTime);
		hPos+=rowHeight;
		LODOP.ADD_PRINT_TEXT(hPos,1,pageWidth,rowHeight,"订单编号:");
		LODOP.ADD_PRINT_TEXT(hPos,60,pageWidth,rowHeight,json.orderNo);
		hPos+=rowHeight;
		LODOP.ADD_PRINT_TEXT(hPos,1,pageWidth,rowHeight,"取货门店:");
		LODOP.ADD_PRINT_TEXT(hPos,60,pageWidth,rowHeight,json.shop);
		hPos+=rowHeight;
		LODOP.ADD_PRINT_LINE(hPos,2, hPos, pageWidth,2, 1);
		hPos+=5;
		LODOP.ADD_PRINT_TEXT(hPos,1,pageWidth,rowHeight,"商品名称");
		LODOP.ADD_PRINT_TEXT(hPos,70,pageWidth,rowHeight,"单价");
		LODOP.ADD_PRINT_TEXT(hPos,110,pageWidth,rowHeight,"数量");
		LODOP.ADD_PRINT_TEXT(hPos,140,pageWidth,rowHeight,"小计");
		hPos+=rowHeight;
		//遍历json的商品数组
		for(var i=0;i<json.goodsList.length;i++){
			
			if(json.goodsList[i].name.length<4){
				LODOP.ADD_PRINT_TEXT(hPos,1,pageWidth,rowHeight,json.goodsList[i].name);
			}else {
				//商品名字过长,其他字段需要换行
				LODOP.ADD_PRINT_TEXT(hPos,1,pageWidth,rowHeight,json.goodsList[i].name);
				hPos+=rowHeight;
			}
			LODOP.ADD_PRINT_TEXT(hPos,70,pageWidth,rowHeight,json.goodsList[i].price);
			LODOP.ADD_PRINT_TEXT(hPos,115,pageWidth,rowHeight,json.goodsList[i].count);
			LODOP.ADD_PRINT_TEXT(hPos,140,pageWidth,rowHeight,json.goodsList[i].total);
			hPos+=rowHeight;
			}
		//商品遍历打印完毕,空一行
		hPos+=rowHeight;
		//合计
		LODOP.ADD_PRINT_TEXT(hPos,80,pageWidth,rowHeight,"合计:"+json.totalCount);
		LODOP.ADD_PRINT_TEXT(hPos,130,pageWidth,rowHeight,"¥"+json.total);
		
		hPos+=rowHeight;
		LODOP.ADD_PRINT_TEXT(hPos,2,pageWidth,rowHeight,(new Date()).toLocaleDateString()+" "+(new Date()).toLocaleTimeString())
		hPos+=rowHeight;
		LODOP.ADD_PRINT_TEXT(hPos,25,pageWidth,rowHeight,"谢谢惠顾,欢迎下次光临!");
		//初始化打印页的规格
		LODOP.SET_PRINT_PAGESIZE(3,pageWidth,45,"XXXXX订单信息");
		
	};	
</script>
</body>
</html>


分享到:
评论

相关推荐

    基于Lodop控件的Web打印

    【基于Lodop控件的Web打印】是一种高效且便捷的网页打印解决方案,它使得用户无需依赖特定的报表工具,可以直接在Web页面上实现“所见即所得”的打印效果。Lodop控件是一个专为网页打印设计的ActiveX插件,通过在...

    基于Lodop打印php网页小票打印实例

    Lodop是一个基于ActiveX和JavaScript技术的浏览器打印控件,可以跨平台运行在IE、Chrome、Firefox等主流浏览器上。它的主要功能是提供一种与服务器端语言(如PHP)交互的接口,用于处理打印任务,包括自定义布局、...

    PrintSettings-C_winform-lodop打印.rar

    LODOP,全称为“Local Operation Data Process”,是一款强大的网页打印控件,能够实现各种复杂的打印功能,包括在线套打、批量打印等。在C/S架构的应用程序中,它为开发者提供了便利的API接口,使得在C#环境下进行...

    vue实现lodop打印功能的示例

    http://www.lodop.net/download.html 2.解压安装运行 3.vue部分实现  3.1将lodopDuncs.js文件放入工程中,具体操作可见:http://www.lodop.net/faq/pp35.html 3.2 编写代码 &lt;button class=print-btn v-...

    一种基于浏览器的自动小票机打印实现方案(js版)

    2. lodop:lodop是一个用于Web打印的JavaScript打印控件,支持在Web页面上实现套打和票据打印等功能。它提供了一个丰富的API,允许开发者在不弹出打印对话框的情况下,直接调用打印机进行打印。它支持多种操作系统和...

    reportdesign基于lodop的vue简单打印设计工具

    LODOP,全称“Local Operation Document Object Platform”,是一款基于浏览器的打印控件,能够实现在Web页面上完成各种复杂的打印任务,包括文档、图片、HTML、PDF等的打印。它的优点在于无需安装额外的插件或驱动...

    jsp打印控件demo基于Lodop无水印

    dishui.html dishui2.html 为票据嵌套打印demo,基于Lodop控件,做出了表格嵌套式的优化,做少量改动即可你本地程序结合,预览时,可见背景图片,不打印背景图片,注意:IE下测试无误,控件本身对IE以外的兼容不是很好,请...

    asp.net使用lodop控件打印

    LODOP是一个基于浏览器的打印控件,全称为"Local Operation Document On Printer",它允许开发者在网页上实现复杂的打印需求,包括设计打印界面、预览打印效果以及生成可复用的打印代码。LODOP控件主要通过...

    使用LODOP控件打印其他的页面

    - **CLodopPrint_Setup_for_Win64NT** 和 **install_lodop32**:这两个文件分别对应64位和32位系统的LODOP安装包,用于在客户端电脑上安装LODOP打印控件。 安装步骤如下: 1. **下载安装包**:从官方网站或指定位置...

    使用lodop进行html打印

    Lodop是一款高效、便捷的网页打印控件,它使得开发者能够轻松实现HTML页面的打印功能。本资源包提供了与Lodop相关的JavaScript(JS)代码和使用指南,帮助开发者快速理解和应用Lodop进行HTML打印。 首先,Lodop是...

    WEB打印控件Lodop完整实例

    **WEB打印控件Lodop**是一款在网页中实现高效打印功能的专业工具,它以其简单易用、功能全面和小巧高效的特点,在WEB打印领域占据重要地位。Lodop旨在简化网页打印的复杂性,为开发者提供一个简洁的接口,使得在网页...

    Lodop打印控件32位/64位

    **Lodop打印控件详解** Lodop打印控件是一款功能强大的网页打印解决方案,它为开发者提供了一种高效、便捷的方式,使得在网页中进行打印操作变得简单易行。这款控件支持32位和64位操作系统,确保了在不同系统环境下...

    LODOP打印控件及案例

    LODOP打印控件是一款广泛应用于企业、教育和政府机构的高效打印解决方案。它是由上海连邦软件科技有限公司开发的一款专业级打印控件,能够帮助用户实现网页、应用程序中的复杂打印需求,包括自定义模板、多页打印、...

    一套免费的WEB打印控件lodop控件

    【标题】:“一套免费的WEB打印控件lodop控件” 在信息技术领域,Web打印控件是用于网页上的打印解决方案,使得用户无需离开浏览器就能直接打印网页内容或特定的文档。"lodop控件"正是这样一款专为Web打印设计的...

    LODOP打印控件

    LODOP打印控件是一款专为网页打印设计的软件组件,它允许开发者通过JavaScript或VBScript在网页上实现复杂的打印功能。这款控件的强大之处在于它不仅支持单页打印,还能处理多页连续打印任务,使得网页上的内容可以...

    web打印报表控件Lodop

    通过以上介绍,我们可以看出Lodop作为一款Web打印控件,其强大而全面的功能满足了网页打印的各种需求,无论是简单的文字打印还是复杂的报表生成,都能轻松应对。在实际项目开发中,熟练掌握和应用Lodop能大大提高...

    WEB 打印控件Lodop,全兼容各浏览器chrome,ie,360

    WEB打印控件Lodop是一种高效且易于使用的打印解决方案,专为解决网页打印问题而设计。它具有全浏览器兼容性的特点,支持包括Chrome、IE(Internet Explorer)以及360浏览器在内的多种主流浏览器,极大地拓宽了其应用...

    Lodop控件,套打控件

    Lodop控件是一款强大的打印解决方案,特别适合于需要进行套打操作的场景,如送货单和银行单据打印。套打是指在已有固定格式的文档上填充动态数据,使得每份打印出来的文档都能根据实际情况变化,而Lodop控件正为此...

    WEB打印控件Lodop

    WEB打印控件Lodop是Web应用程序中实现打印功能的一款高效解决方案,尤其在网页打印、报表打印、标签打印等场景下表现出色。它允许开发者通过简单的JavaScript调用,实现复杂打印需求,无需用户安装额外的驱动程序,...

    lodop打印控件安装包,含64位和32位两个版本

    Lodop全称为“乐多普”,它是一个基于ActiveX技术的打印控件,由上海云表软件科技有限公司开发。通过在网页中嵌入Lodop控件,用户可以在浏览器上直接完成文档的打印任务,无需离开当前页面,极大地提高了工作效率。...

Global site tag (gtag.js) - Google Analytics