Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能足够强大,开创WEB打印开发的新局面。
Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实现复杂的打印任务,尽量减少使用者的知识累赘。控件发布包有3个系统文件组成,全部功能用几个控件参数和2组功能函数来实现。
尽管我们有个理想化的目标,那就是您不用详细了解这些参数或函数,仅仅看懂几个样例文件就能很轻松地开始使用本控件,为此Lodop提供了一个足够完善的设计界面,用它可以实现大多数打印开发任务,但事实上了解这些参数和函数总还是有好处的,特别是当您的开发任务很复杂时,这就是本文目的,但愿本文档足够详细且简单明了。
如果此前曾看过lodop的入门样例程序,本文会更容易理解!
Lodop发布包内主要有如下几个文件:
该文件是控件安装和升级的主文件,提供给用户或开发者下载安装,如果不特意拦截一般都能100%安装,对“网页插件安装难”有一定改善。如果将其复制或改名为uninstall_lodop.exe (名前加un)就可用其卸载控件。
Lodop安装后,在操作系统目录WINDOWS\system32下会安装两个实体文件:CAOSOFT_WEB_PRINT_LODOP.OCX和NPCAOSOFT_WEB_PRINT_lodop.dll,前一个文件是OCX文件,后者是Npplugin文件,其作用是实现多浏览器支持。目前Lodop支持IE系列、IE内核系列(遨游、360、世界之窗、腾讯TT、搜狗等)浏览器,以及Firefox(火狐)系列、Chrome(谷歌)系列、Opera系列、Safari系列等Windows下几乎所有的浏览器。
程序文件有几个预定参数:
-waitXX 该参数设置安装程序运行完毕后自动关闭窗口,这里的XX表示关闭前等待的秒数,如果是0秒则安装(或卸载)成功后立即关闭,例如: –wait8
-nowindow 该参数设置安装程序运行时不出现窗口。
-un 该参数使程序执行卸载操作,参数优先于文件名。
-in 该参数使程序执行安装操作,参数优先于文件名。
该文件是用来引导安装控件的一个JS文件,是个样例,但建议直接采用。其中getLodop的任务是判断浏览器的类型并决定采用哪个对象实例,并检测控件是否安装、是否最新版本、并引导安装或升级。文件内容如下:
function getLodop(oOBJECT,oEMBED){ var strHtml1=" var strHtml2=" var strHtml3=" 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的使用:
var LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
…
|
以上两段代码相互配合实现了Lodop的安装、调用和升级。之所以将LodopFuncs.js作为一个资源文件来部署,既可以利用浏览器的缓存减少页面内容的重复下载,同时还实现了控件发布统一管理,整个应用系统中只要这一个地方发布Lodop。其它页面直接拷贝嵌入第2段代码就可以了。
Lodop有如下控件参数,以页面object对象元素的参数形式使用:
名称:设置控件的显示标题 格式:aption" value="我是打印控件lodop"> 功能: 控件在页面内一般是以object元素形式被引用。可以通过设置元素的width和height等于0来隐藏控件,不隐藏时可以为控件设置一个标题,以便于看到控件是否被正确安装,以及控件对象在页面内的位置。希望打印预览界面或设计界面内嵌到网页内时,本参数很有用。 |
名称:设置控件的显示区域颜色 格式: 功能:通过该参数设置控件显示区域的底色,对于希望打印预览界面或设计界面内嵌到网页内时,本参数可以让控件容易融于整体页面。 参数值采用超文本颜色形式,可以是三色16进制值组合,也可以是英文颜色名。 |
名称:设置控件的显示区域边界 格式:Border" value="1"> 功能:通过该参数设置控件显示区域的边界,值等于1表示有边界,否则无边界。本参数可以让控件更融于整体页面。 |
function print(data,orderData){
LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));//得到适配
LODOP.PRINT_INITA(data["upDown"],data["leftRight"],data["width"]-data["leftRight"],data["height"]-data["upDown"],"打印");//打印初始化
LODOP.SET_PRINT_PAGESIZE(1,data["width"]+"mm",data["height"]+"mm","");//设置纸张
var print_item = data.piMap;
$.each(_printItem, function(i, item) {
if(print_item[item]!=null&&print_item[item]!=undefined){
var a = print_item[item];
LODOP.ADD_PRINT_TEXT(a.top,a.left,a.width,a.height,orderData[item]);//设置距离打印文本
}
});
LODOP.PRINTA(); //打印
}
<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 pluginspage="install_lodop.exe">embed>
object>
function myPreview2() {
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_IMAGE(30,150,600,400," border='0' src='http://www.baidu.com/img/baidu_logo.gif'/>");
LODOP.SET_PRINT_STYLEA(1,"Stretch",1);//(可变形)扩展缩放模式
LODOP.PREVIEW();
};
function myPreview3() {
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_IMAGE(30,150,600,80,"");
LODOP.SET_PRINT_STYLEA(1,"Stretch",2);//按原图比例(不变形)缩放模式
LODOP.PREVIEW();
};
function myPreview3(){
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
var strBodyStyle="";
varstrFormHtml=strBodyStyle+""+document.getElementById("form1").innerHTML+"";
LODOP.ADD_PRINT_TEXT(50,50,260,39,"细线样式打印:");
LODOP.ADD_PRINT_HTM(88,50,300,200,strFormHtml);
LODOP.PREVIEW();
};
function CreateOneFormPage(){
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.SET_PRINT_STYLE("FontName","黑体");
LODOP.SET_PRINT_STYLE("FontSize",15);
LODOP.ADD_PRINT_TEXT(71,162,120,35,"正常内容");
LODOP.ADD_PRINT_TEXT(232,355,325,34,"纯文本逆时针旋转90度\n");
LODOP.SET_PRINT_STYLEA(0,"Angle",90);
LODOP.ADD_PRINT_TEXT(181,161,346,34,"纯文本逆时针旋转45度\n");
LODOP.SET_PRINT_STYLEA(0,"Angle",45);
LODOP.ADD_PRINT_HTM(230,98,163,200,"
\n\n");\n 旋转90度 \n正常超文本内容 \n
};
function CreateFullBill() {
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.SET_PRINT_STYLE("FontColor","#0000FF");
LODOP.ADD_PRINT_SHAPE(2,116,43,655,373,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(1,144,44,653,1,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(1,172,44,653,1,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(0,116,143,1,56,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(0,116,488,1,56,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(0,116,574,1,372,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(0,172,166,1,282,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(0,172,415,1,282,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(1,454,44,653,1,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(0,454,130,1,34,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(0,454,483,1,34,0,1,"#800000");
LODOP.ADD_PRINT_SHAPE(0,64,62,120,1,0,1,"#0000FF");
LODOP.ADD_PRINT_SHAPE(3,29,62,32,32,0,4,"#0000FF");
LODOP.ADD_PRINT_SHAPE(3,21,300,147,75,0,3,"#FF0000");
LODOP.ADD_PRINT_SHAPE(3,26,307,132,65,0,1,"#FF0000");
LODOP.ADD_PRINT_TEXT(33,192,408,30,"中国移动通信集团北京有限公司专用发票");
LODOP.SET_PRINT_STYLEA(0,"FontSize",15);
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(68,326,100,25,"发 票 联");
LODOP.SET_PRINT_STYLEA(0,"FontSize",11);
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(29,98,84,35,"中国移动通信CHINA MOBILE");
LODOP.ADD_PRINT_SHAPE(2,37,69,18,15,0,1,"#0000FF");
LODOP.ADD_PRINT_SHAPE(2,40,73,10,9,0,1,"#0000FF");
LODOP.ADD_PRINT_TEXT(70,64,117,20,"移 动 信 息 专 家");
LODOP.SET_PRINT_STYLEA(0,"FontSize",8);
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(124,58,68,20,"客户名称");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(152,58,68,20,"手机号码");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(124,497,68,20,"受理类别");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(152,497,68,20,"合 同 号");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(465,54,68,20,"大写金额");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(465,495,104,20,"小写金额 ¥: ");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_TEXT(98,56,47,20,"编号:");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_TEXT(98,259,48,20,"日期:");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_TEXT(97,500,71,20,"发票号码:");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_TEXT(496,54,83,20,"话费帐期:");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_TEXT(496,321,83,20,"营业员工号:");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_TEXT(496,480,93,20,"收款单位名称:");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_TEXT(226,703,27,121,"第二联发票联");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(203,21,17,195,"京地税准印八九号五百万份");
LODOP.SET_PRINT_STYLEA(0,"FontSize",8);
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.ADD_PRINT_TEXT(126,150,100,20,"郭德强");
LODOP.ADD_PRINT_TEXT(151,150,100,20,"13954885188");
LODOP.ADD_PRINT_TEXT(125,584,99,20,"发票打印(第1次)");
LODOP.ADD_PRINT_TEXT(465,140,198,20,"陆百柒拾捌元叁角零分");
LODOP.ADD_PRINT_TEXT(465,599,70,20,"678.30");
LODOP.ADD_PRINT_TEXT(496,408,59,20,"H112063");
LODOP.ADD_PRINT_TEXT(191,58,100,20,"国内漫游通话");
LODOP.ADD_PRINT_TEXT(191,217,100,20,"584.00");
LODOP.ADD_PRINT_TEXT(222,58,100,20,"增值业务费");
LODOP.ADD_PRINT_TEXT(222,217,100,20,"48.30");
LODOP.ADD_PRINT_TEXT(251,58,100,20,"代收费");
LODOP.ADD_PRINT_TEXT(251,217,100,20,"50.00");
LODOP.ADD_PRINT_TEXT(280,58,100,20,"优惠费");
LODOP.ADD_PRINT_TEXT(280,217,100,20,"4.00");
LODOP.ADD_PRINT_TEXT(98,101,150,20,"101081005747319387");
LODOP.ADD_PRINT_TEXT(97,307,150,20,"2008年10月19日 10:28:38");
LODOP.ADD_PRINT_TEXT(152,584,103,20,"138860016786");
LODOP.ADD_PRINT_TEXT(95,571,112,20,"06775516");
LODOP.SET_PRINT_STYLEA(0,"FontName","System");
LODOP.ADD_PRINT_TEXT(76,500,71,20,"发票代码:");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#800000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",3);
LODOP.ADD_PRINT_TEXT(74,571,112,20,"237090742401");
LODOP.SET_PRINT_STYLEA(0,"FontName","System");
LODOP.SET_PRINT_STYLEA(0,"FontColor","#FF0000");
LODOP.ADD_PRINT_TEXT(496,135,183,20,"2008年09月(20080901-20080930)");
LODOP.ADD_PRINT_TEXT(496,572,112,20,"-王府井中心店营");
LODOP.ADD_PRINT_TEXT(311,217,100,20,"678.30");
LODOP.ADD_PRINT_TEXT(311,58,100,20,"费用合计");
};
function PreviewMytable(){
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_TABLE(100,5,500,280,document.getElementById("div1").innerHTML);
LODOP.SET_PRINT_STYLEA(0,"TableHeightScope",iRadioValue);
LODOP.PREVIEW();
};
function PrintInFullPage(){
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_自定义纸张");
LODOP.SET_PRINT_PAGESIZE(2,0,0,"A4");
LODOP.ADD_PRINT_TABLE("2%","1%","96%","98%",document.getElementById("div1").innerHTML);
LODOP.SET_PREVIEW_WINDOW(0,0,0,800,600,"");
LODOP.PREVIEW();
};
var LODOP; //声明为全局变量
function myCreatePage() {
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_ELLIPSE("0%","0%","100%","50%",0,1);
LODOP.ADD_PRINT_TABLE("50%","0%","100%","50%"," leftmargin=0>"+document.getElementById("table02").innerHTML+"");
};
function myPreview() {
myCreatePage();
LODOP.PREVIEW();
};
function ReSumMoney() {
var fSumvalue=0;
for (i = 1; i < 8; i++) {
if (document.getElementById("CK"+i).checked) {
fSumvalue=fSumvalue+parseFloat(document.getElementById("DJ"+i).value);
}
}
document.getElementById("HJ").value=fSumvalue.toFixed(2);
};
function MyPreview() {
AddTitle();
var iCurLine=80;//标题行之后的数据从位置80px开始打印
for (i = 1; i < 8; i++) {
if (document.getElementById("CK"+i).checked) {
LODOP.ADD_PRINT_TEXT(iCurLine,15,100,20,document.getElementById("BH"+i).value);
LODOP.ADD_PRINT_TEXT(iCurLine,149,100,20,document.getElementById("MC"+i).value);
LODOP.ADD_PRINT_TEXT(iCurLine,289,100,20,document.getElementById("SL"+i).value);
LODOP.ADD_PRINT_TEXT(iCurLine,409,100,20,document.getElementById("DJ"+i).value);
iCurLine=iCurLine+25;//每行占25px
}
}
LODOP.ADD_PRINT_LINE(iCurLine,14,iCurLine,510,0,1);
LODOP.ADD_PRINT_TEXT(iCurLine+5,20,300,20,"打印时间:"+(new Date()).toLocaleDateString()+" "+(new Date()).toLocaleTimeString());
LODOP.ADD_PRINT_TEXT(iCurLine+5,346,150,20,"合计金额:"+document.getElementById("HJ").value);
LODOP.SET_PRINT_PAGESIZE(3,1385,45,"");//这里3表示纵向打印且纸高“按内容的高度”;1385表示纸宽138.5mm;45表示页底空白4.5mm
LODOP.PREVIEW();
};
function AddTitle(){
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_TEXT(15,102,355,30,"北京市东城区沃乐福商城收款票据");
LODOP.SET_PRINT_STYLEA(1,"FontSize",13);
LODOP.SET_PRINT_STYLEA(1,"Bold",1);
LODOP.ADD_PRINT_TEXT(50,15,100,20,"商品编号");
LODOP.SET_PRINT_STYLEA(2,"FontSize",10);
LODOP.SET_PRINT_STYLEA(2,"Bold",1);
LODOP.ADD_PRINT_TEXT(50,149,100,20,"商品名称");
LODOP.SET_PRINT_STYLEA(3,"FontSize",10);
LODOP.SET_PRINT_STYLEA(3,"Bold",1);
LODOP.ADD_PRINT_TEXT(50,289,100,20,"商品数量");
LODOP.SET_PRINT_STYLEA(4,"FontSize",10);
LODOP.SET_PRINT_STYLEA(4,"Bold",1);
LODOP.ADD_PRINT_TEXT(50,409,100,20,"单价(元)");
LODOP.SET_PRINT_STYLEA(5,"FontSize",10);
LODOP.SET_PRINT_STYLEA(5,"Bold",1);
LODOP.ADD_PRINT_LINE(72,14,73,510,0,1);
};
function myShow4() {
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_TEXT(43,250,75,20,"东北地区");
LODOP.ADD_PRINT_TEXT(96,173,75,20,"华北地区");
LODOP.ADD_PRINT_TEXT(187,208,60,20,"华南地区");
LODOP.ADD_PRINT_TEXT(137,256,60,20,"华东地区");
LODOP.ADD_PRINT_TEXT(136,176,61,20,"华中地区");
LODOP.ADD_PRINT_TEXT(77,76,60,20,"西北地区");
LODOP.ADD_PRINT_TEXT(172,129,60,20,"西南地区");
LODOP.ADD_PRINT_LINE(97,224,57,284,0,1);
LODOP.ADD_PRINT_LINE(89,118,107,177,0,1);
LODOP.ADD_PRINT_LINE(169,152,152,213,0,1);
LODOP.ADD_PRINT_LINE(117,195,134,201,0,1);
LODOP.ADD_PRINT_LINE(163,231,190,239,0,1);
LODOP.ADD_PRINT_LINE(147,234,148,253,0,1);
LODOP.ADD_PRINT_TEXT(94,395,24,97,"地区方位图");
LODOP.ADD_PRINT_SETUP_BKIMG("");
LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",1); //注:"BKIMG_IN_PREVIEW"-预览包含背景图 "BKIMG_IN_FIRSTPAGE"- 仅首页包含背景图
LODOP.PREVIEW();
};
function MyPreview() {
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.SET_PRINT_PAGESIZE(1,500,508,"");
for (i = 1; i < 8; i++) {
LODOP.NewPage();
LODOP.ADD_PRINT_RECT(10,18,128,160,0,1);
LODOP.ADD_PRINT_TEXT(31,33,111,20,"商品编号:"+document.getElementById("BH"+i).value);
LODOP.ADD_PRINT_TEXT(69,33,111,20,"商品名称:"+document.getElementById("MC"+i).value);
LODOP.ADD_PRINT_TEXT(107,33,111,20,"商品数量:"+document.getElementById("SL"+i).value);
LODOP.ADD_PRINT_TEXT(146,33,111,20,"商品单价:"+document.getElementById("DJ"+i).value);
LODOP.PREVIEW();
}
};
function PreviewMytable(){
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_TABLE(128,"5%","90%",314,document.getElementById("div2").innerHTML);
LODOP.SET_PRINT_STYLEA(0,"Vorient",3);
LODOP.ADD_PRINT_HTM(20,"5%","90%",109,document.getElementById("div1").innerHTML);
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
LODOP.SET_PRINT_STYLEA(0,"LinkedItem",1);
LODOP.ADD_PRINT_HTM(444,"5%","90%",54,document.getElementById("div3").innerHTML);
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
LODOP.SET_PRINT_STYLEA(0,"LinkedItem",1);
LODOP.NewPageA();
LODOP.ADD_PRINT_TABLE(112,"5%","90%",328,document.getElementById("div2").innerHTML);
LODOP.SET_PRINT_STYLEA(0,"Vorient",3);
LODOP.ADD_PRINT_HTM(26,"5%","90%",80,document.getElementById("div4").innerHTML);
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
LODOP.SET_PRINT_STYLEA(0,"LinkedItem",4);
LODOP.ADD_PRINT_TEXT(454,96,"76.25%",20,"( “页脚”,紧跟表格)");
LODOP.SET_PRINT_STYLEA(0,"LinkedItem",4);
LODOP.SET_PRINT_STYLEA(0,"FontSize",12);
LODOP.SET_PRINT_STYLEA(0,"FontColor","#FF0000");
LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
LODOP.SET_PRINT_STYLEA(0,"Horient",3);
LODOP.ADD_PRINT_TEXT(3,653,135,20,"总页号:第#页/共&页");
LODOP.SET_PRINT_STYLEA(0,"ItemType",2);
LODOP.SET_PRINT_STYLEA(0,"Horient",1);
LODOP.ADD_PRINT_TEXT(3,34,196,20,"总页眉:《两个发货单的演示》");
LODOP.SET_PRINT_STYLEA(0,"ItemType",1);
LODOP.PREVIEW();
};
var LODOP; //声明为全局变量
function prn1_preview() {
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
LODOP.ADD_PRINT_HTM(88,200,350,600,document.getElementById("div1").innerHTML);
LODOP.NewPage();
LODOP.ADD_PRINT_HTM(88,200,350,600,document.getElementById("div2").innerHTML);
LODOP.NewPage();
LODOP.ADD_PRINT_HTM(88,200,350,600,document.getElementById("div3").innerHTML);
LODOP.PREVIEW();
};
function prn2_preview() {
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM'));
strHTML=" strHTML=strHTML+" strHTML=strHTML+document.getElementById("div1").innerHTML; strHTML=strHTML+" strHTML=strHTML+" strHTML=strHTML+document.getElementById("div2").innerHTML; strHTML=strHTML+" strHTML=strHTML+" strHTML=strHTML+document.getElementById("div3").innerHTML; strHTML=strHTML+" LODOP.ADD_PRINT_TABLE(88,200,350,1,strHTML); LODOP.PREVIEW(); }; function prn3_preview() { LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM')); LODOP.ADD_PRINT_HTM(88,150,450,"100%",document.getElementById("div1_2_3").innerHTML); LODOP.PREVIEW(); }; LODOP.ADD_PRINT_TABLE(100,5,500,280,document.getElementById("tablediv").innerHTML); LODOP.ADD_PRINT_TABLE(26,0,500,280,document.getElementById("tablediv").innerHTML); LODOP.SET_PRINT_STYLEA(0,"LinkedItem",1); LODOP.ADD_PRINT_TEXT(15,50,200,25,"制表日期:"+LODOP.FORMAT("TIME:YYYY年MM月DD日","DATE")); LODOP.SET_PRINT_STYLEA(0,"LinkedItem",2); LODOP.ADD_PRINT_TEXT(15,300,200,25,"双表输出:Admin"); LODOP.SET_PRINT_STYLEA(0,"LinkedItem",2); LODOP.ADD_PRINT_TABLE(100,5,500,280,document.getElementById("tablediv").innerHTML); LODOP.ADD_PRINT_TEXT(15,50,200,25,"制表日期:"+LODOP.FORMAT("TIME:YYYY年MM月DD日","DATE")); LODOP.SET_PRINT_STYLEA(0,"LinkedItem",1); LODOP.ADD_PRINT_TEXT(15,300,200,25,"单表制表:guest"); LODOP.SET_PRINT_STYLEA(0,"LinkedItem",1); function MyPREVIEW() { LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM')); LODOP.PRINT_INIT("中文学位证书打印"); LODOP.SET_PRINT_PAGESIZE(1,2970,2100,""); LODOP.SET_PRINT_STYLE("FontSize",16); LODOP.SET_PRINT_STYLE("Bold",1); for (j = 1; j <=10; j++) { CreateOnePage("姓名"+j,"男",j); }; LODOP.SET_PREVIEW_WINDOW(0,0,0,0,0,""); LODOP.PREVIEW(); }; function CreateOnePage(XM,XB,BH){ LODOP.NewPage(); LODOP.ADD_PRINT_TEXTA("text01",67,132,137,35,XM); LODOP.SET_PRINT_STYLEA(0,"Alignment",3); LODOP.ADD_PRINT_TEXTA("text02",67,280,40,35,XB); LODOP.ADD_PRINT_TEXTA("text03",67,329,70,35,"1979"); LODOP.SET_PRINT_STYLEA(0,"Alignment",3); LODOP.ADD_PRINT_TEXTA("text04",67,421,50,35,"09"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); LODOP.ADD_PRINT_TEXTA("text05",67,489,40,35,"09"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); LODOP.ADD_PRINT_TEXTA("text06",223,220,76,35,"理学"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); LODOP.ADD_PRINT_TEXTA("text07",121,130,332,35,"应用物理与微电子技术"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); LODOP.ADD_PRINT_TEXTA("text08",271,482,34,35,"校"); LODOP.ADD_PRINT_TEXTA("text09",271,616,32,35,"长"); LODOP.SET_PRINT_STYLEA(0,"Alignment",3); LODOP.ADD_PRINT_TEXTA("text10",300,131,289,35,"合肥工业大学"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); LODOP.ADD_PRINT_TEXTA("text11",364,210,261,35,"103700002009000"+BH); LODOP.ADD_PRINT_TEXTA("text12",365,753,66,35,"2009"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); LODOP.ADD_PRINT_TEXTA("text13",365,843,37,35,"12"); LODOP.ADD_PRINT_TEXTA("text14",365,911,54,35,"31"); LODOP.SET_PRINT_STYLEA(0,"Alignment",2); }; 利用专为函数ADD_PRINT_TABLE使用的特殊超文本元素属性可以轻松实现分页小计、累计、分类统计、页数及总合计等功能, 一、设置统计类型的元素属性名是“tdata”,其值和含义为: <tr> <td width="481" colspan="2">本表截止当前行累积金额: td> <td width="657" colspan="3"><font color="#0000FF" tdata="Sum" format="#,##0.00" tindex="3" >######font> td> tr> <tr> <td width="374" colspan="2">截止表尾累积金额 td> <td width="202"><font color="#0000FF" tdata="Sum" format="#,##0.00" tindex="3" >######font> td> <td width="363" colspan="2"><font color="#0000FF" tdata="Sum" format="UpperMoney" tindex="3" >######font> td> tr> <tfoot> <tr> <th width="20%" tdata="subCount" format="#" align="left">本页行数:<font color="#0000FF">######font>th> <th width="26%" tdata="subSum" format="#.##">本页数量小计:<font color="#0000FF">######font>th> <th width="14%" align="right">本页金额小计th> <th width="19%" tdata="subSum" format="#,##0.00" align="right"><font color="#0000FF">###元font>th> <th width="21%" tdata="subAverage" format="#.00" align="left">本页均价:<font color="#0000FF">######font>th> tr> <tr> <th width="20%" tdata="Count" format="#" align="left">累计行数:<font color="#0000FF">######font>th> <th width="26%" tdata="Sum" format="#.##">数量累计:<font color="#0000FF">######font>th> <th width="14%" align="right">金额累计th> <th width="19%" tdata="Sum" format="#,##0.00" align="right"><font color="#0000FF">¥###font>th> <th width="21%" tdata="Average" format="#.00" align="left">累计均价:<font color="#0000FF">######font>th> tr> <tr> <th width="20%" tdata="allCount" format="#" align="left">全表行数:<font color="#0000FF">######font>th> <th width="26%" tdata="allSum" format="#.##">全表数量总计:<font color="#0000FF">######font>th> <th width="14%" align="right">全表金额总计th> <th width="19%" tdata="allSum" format="#,##0.00" align="right"><font color="#0000FF">¥###font>th> <th width="21%" tdata="allAverage" format="#.00" align="left">全表均价:<font color="#0000FF">######font>th> tr> <tr> <th width="22%" tdata="subCount" format="0" align="left" colspan="2"> 本页A型:<font color="#0000FF" tclass="a">##font>行,B型: <font color="#0000FF" tclass="b" tindex="1">##font>行 th> <th width="12%" tdata="pageNO" format="#" align="left" colspan="2"> <p align="center">第<font color="#0000FF">#font>页p> th> <th width="10%" tdata="pageCount" format="#" align="left"> <p align="center">总<font color="#0000FF">#font>页 th> tr> tfoot> function CreatePrintPage() { LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM')); LODOP.PRINT_INITA(0,0,800,1600,"打印控件功能演示_Lodop功能_打印条码"); LODOP.ADD_PRINT_BARCODE(28,34,307,47,"128A","123456789012"); LODOP.ADD_PRINT_BARCODE(84,34,342,78,"128B","123456789012"); LODOP.SET_PRINT_STYLEA(0,"FontSize",20); LODOP.ADD_PRINT_BARCODE(176,34,199,58,"128C","888888"); LODOP.SET_PRINT_STYLEA(0,"Color",255); LODOP.ADD_PRINT_BARCODE(237,34,153,54,"EAN8","69012341"); LODOP.ADD_PRINT_BARCODE(296,34,360,47,"EAN13","6901234567892"); LODOP.ADD_PRINT_BARCODE(351,34,360,36,"EAN128A","123456789012"); LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0); LODOP.ADD_PRINT_BARCODE(403,34,360,47,"EAN128B","123456789012"); LODOP.ADD_PRINT_BARCODE(462,34,360,47,"EAN128C","123456789012"); LODOP.ADD_PRINT_BARCODE(513,34,360,47,"Code39","*123ABC4567890*"); LODOP.SET_PRINT_STYLEA(0,"Color",16711680); LODOP.ADD_PRINT_BARCODE(570,34,360,47,"39Extended","*1234567890*"); LODOP.ADD_PRINT_BARCODE(621,34,360,47,"2_5interleaved","123456789012"); LODOP.ADD_PRINT_BARCODE(677,34,360,47,"2_5industrial","123456789012"); LODOP.ADD_PRINT_BARCODE(729,34,360,47,"2_5matrix","123456789012"); LODOP.SET_PRINT_STYLEA(0,"Color",8421440); LODOP.ADD_PRINT_BARCODE(787,34,360,47,"UPC_A","089600124569"); LODOP.ADD_PRINT_BARCODE(844,34,135,64,"UPC_E0","08960007"); LODOP.ADD_PRINT_BARCODE(238,426,104,62,"UPC_E1","1111111"); LODOP.SET_PRINT_STYLEA(0,"Angle",90); LODOP.ADD_PRINT_BARCODE(209,560,62,57,"UPCsupp2","123456789012"); LODOP.SET_PRINT_STYLEA(0,"Angle",90); LODOP.ADD_PRINT_BARCODE(374,434,119,59,"UPCsupp5","123456789012"); LODOP.SET_PRINT_STYLEA(0,"Angle",90); LODOP.ADD_PRINT_BARCODE(370,559,44,63,"Code93","BJ100080"); LODOP.SET_PRINT_STYLEA(0,"Angle",90); LODOP.ADD_PRINT_BARCODE(241,663,73,59,"93Extended","123456789012"); LODOP.SET_PRINT_STYLEA(0,"Angle",-90); LODOP.ADD_PRINT_BARCODE(693,424,49,79,"MSI","123456789012"); LODOP.SET_PRINT_STYLEA(0,"Color",16711935); LODOP.SET_PRINT_STYLEA(0,"ShowBarText",0); LODOP.SET_PRINT_STYLEA(0,"Angle",90); LODOP.ADD_PRINT_BARCODE(749,559,44,68,"PostNet","123456789012"); LODOP.SET_PRINT_STYLEA(0,"Angle",90); LODOP.ADD_PRINT_BARCODE(572,659,44,73,"Codabar","123456789012"); LODOP.SET_PRINT_STYLEA(0,"Angle",-90); LODOP.ADD_PRINT_BARCODE(30,423,116,114,"QRCode","123123123版本3的最大值是42个字符"); LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",3); LODOP.ADD_PRINT_BARCODE(31,587,168,146,"QRCode","1234567890版本7的最大值是122个字符123123"); LODOP.SET_PRINT_STYLEA(0,"GroundColor",16744448); LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",7); }; printDj:function(){ DjglProcess.lodop=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM')); var strBodyStyle=""; strFormHtml=strBodyStyle+""+document.getElementById("_print").innerHTML+""; DjglProcess.lodop.add_print_htm(10,60,840,700,strFormHtml); //DjglProcess.lodop.PRINTA(); //选择打印机打印 DjglProcess.lodop.PREVIEW(); //预览打印 //DjglProcess.lodop.PRINT(); //直接打印 }, function prn_Preview() { CreatePrintPage(); LODOP.PREVIEW(); //打印预览 //LODOP.PRINT_SETUP(); //打印维护 //LODOP.PRINT_DESIGN(); //打印设计 }; function CreatePrintPage() { LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM')); LODOP.PRINT_INITA(0,0,800,1600,"打印控件功能演示_Ext"); AddText(); LODOP.ADD_PRINT_TEXT(3,653,135,20,"总页号:第#页/共&页"); LODOP.SET_PRINT_STYLEA(0,"FontSize",11); LODOP.SET_PRINT_STYLEA(0,"ItemType",2); LODOP.SET_PRINT_STYLEA(0,"Horient",1); LODOP.ADD_PRINT_TEXT(3,34,196,20,"总页眉:《入库单的演示》"); LODOP.SET_PRINT_STYLEA(0,"FontSize",11); LODOP.SET_PRINT_STYLEA(0,"ItemType",1); } function AddText(){ LODOP.ADD_PRINT_TEXT(25,382,355,30,dj_grid.title); LODOP.SET_PRINT_STYLEA(1,"FontSize",16); LODOP.SET_PRINT_STYLEA(1,"Bold",1); //设置表格样式 var strTableStyle=""; //将数据拼成一个table var strTableStartHtml=" var strTableEndHtml=" var strTableTheadHtml="";
var strTableTrHtml=""; for(var i=0;i var td=" strTableTheadHtml+=td; } strTableTheadHtml+=" strTableTheadHtml+=" var zjeTotal=0; for(var i=0;i var td =" td+=dj_grid.getStore().getAt(i).get("djh"); td+=" td+=Ext.util.Format.date(dj_grid.getStore().getAt(i).get("djrq"),'Y年m月d日'); td+=" td+=dj_grid.getStore().getAt(i).get("ghsmc"); td+=" var zje=dj_grid.getStore().getAt(i).get("zje"); zjeTotal+=parseFloat(zje); td+=Ext.util.Format.number(zje,'0,0.00'); td+=" td+=dj_grid.getStore().getAt(i).get("djzt"); td+=" td+=" strTableTrHtml+=td; } var strTableTfoot=" var strPageFooter=" 第#页 总#页 LODOP.ADD_PRINT_HTM(50,0,800,1000,strTableStyle); LODOP.ADD_PRINT_TABLE(75,0,"100%","85%",strTableStartHtml+strTableTheadHtml+strTableTrHtml+strPageFooter+strTableEndHtml); var j=81; for(var i=0;i j=j+30; LODOP.ADD_PRINT_BARCODE(j,734,37,22,"128A",dj_grid.getStore().getAt(i).get("djh")); if(j%1011==0){j=81;LODOP.NewPage();} } }; ";
";";
";";
";";
演示内容关联后按顺序打印:
超多页打印演示:
演示打印Table的分页小计和合计:
该属性有tdata、format、tclass、tindex四个,可以用在table内任何元素上,如果元素在tfoot内则每页都输出。
这些属性的解释和演示如下:
subCount---本页行数,即本列的单元格行数;
subSum---本页合计,即本列的数值合计;
subAverage---本页平均数,即本页合计除以本页行数;
Count---累计行数,即从第一页到本页的行数累加值;
Sum---累计数,即从第一页到本页的本列数值的累加值;
Average---累计平均数,即累计数除以累计行数;
allCount---总行数,即全表(Table)的本列行数;
allSum---总计数,即全表(Table)的本列数值的总和;
allAverage---总平均数,即全表总计数除以总行数;
二、设置数据格式的元素属性名是“format”,format值如下样式:
“0” “0.00” “#.##” “#,##0.00”“0.000E+00”“#.###E-0 ”“UpperMoney(大写金额)”等等...
三、分类统计的“类名”用元素属性“tclass”,tclass值任意设置,参见本演示的“A型”“B型”个数统计。
四、一般要求统计结果的位置与数据的列位置一致或内含在数据列内,如果位置无法一致,
可以用“tindex”指定对应的数据列,该值是数字型的列序号,从1起始,参见本演示的“B型”统计。
五、统计结果的占位符是任意个“#”组成的字符串,当结果值较大时,注意占位符要足够多,除非周围有空白区如何打印条形码:
单据打印
入库单列表打印
";
";
"+dj_grid.getColumnModel().getColumnHeader(i)+" ";条形码 ";
"; ";
";
";
";
";
";
";
合计 "+Ext.util.Format.number(zjeTotal,'0,0.00')+" <表格页脚>本页动态合计 # ";
你可能感兴趣的:(javascript)