本经验分享基于Lodop打印控件,文中说到的相关专业名词和函数均能在Lodop技术手册文档中找到。
Lodop(标音:劳道谱,俗称:露肚皮)是web开发的必选伴侣,它能使BS下的打印像CS下那样随意而高效。
当打印页数超级多(上千页)时,如果用单页循环打印,会因为在操作系统中产生太多的打印任务而影响性能;
如果用NewPage分页方式打印,则会因为一次性占用太多的系统资源而需要等待很长时间...
解决问题的办法是采用折中处理,既分组完成,每组完成一部分,循环执行组打印。
打印维护(模板)
打印预览
下面演示一组打印预览10页,分70组循环实现700页的学位证书套打:
(在分组打印模板中,需要用ADD_PRINT_TEXTA函数,为每一个对象起个类名)
- var LODOP; //声明为全局变量
- function MySetup() {
- LODOP=getLodop();
- LODOP.PRINT_INIT("中文学位证书打印");
- LODOP.SET_PRINT_PAGESIZE(1,2970,2100,"");
- LODOP.SET_PRINT_STYLE("FontSize",16);
- LODOP.SET_PRINT_STYLE("Bold",1);
- CreateOnePage("姓名","男","");
- LODOP.PRINT_SETUP();
- };
- function MyPREVIEW() {
- LODOP=getLodop();
- 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 MyPrint() {
- LODOP=getLodop();
- if(!confirm("下面的演示会产生大量的实际打印操作,确定继续吗?")) return;
- for (i = 1; i <=70; i++) {
- 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("姓名"+i+j,"男",""+i+j);
- };
- LODOP.SET_PRINT_MODE("CUSTOM_TASK_NAME","中文学位证书打印"+i);//为每个打印单独设置任务名
- LODOP.PRINT();
- };
- };
- 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("text22",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,922,54,35,"31");
- LODOP.SET_PRINT_STYLEA(0,"Alignment",2);
- };
名称:增加纯文本打印项
格式:ADD_PRINT_TEXT(Top,Left,Width,Height,strContent)
功能:增加纯文本打印项,设定该打印项在纸张内的位置和区域大小,文本内容在该区域内自动折行,当内容超出区域高度时,如果对象被设为“多页文档”则会自动分页继续打印,否则内容被截取
名称:增加纯文本打印项(扩展型)
格式:ADD_PRINT_TEXTA(strItemName,Top,Left,Width,Height,strContent)
功能:增加纯文本打印项,设定该打印项在纸张内的位置和区域大小,文本内容在该区域内自动折行,当内容超出区域高度时,如果对象被设为“多页文档”则会自动分页继续打印,否则内容被截取
说明:功能同函数ADD_PRINT_TEXT,strItemName所增纯文本打印项的项目名,字符型,未限制长度。打印项序号比较难以**时,用本函数。
名称:设置打印项风格A,继承SET_PRINT_STYLE的所有属性(扩展型)
格式:SET_PRINT_STYLEA(varItemNameID, strStyleName,varStyleValue)
功能:类似函数SET_PRINT_ STYLE的功能,二者的区别是本函数只对单个打印项有效。
参数说明:varItemNameID:要设置的目标项序号或项目名,数字型或字符型。
关键字有如下几种:
不是关键字的字符一般是类名,类名可以在ADD_PRINT_TEXTA加入纯文本时用strItemName来声明,也可以在设计界面用菜单功能(Set TEXT Item Name)来设置。
strStyleName:打印风格名。此处风格“Alignment”(设定纯文本打印项的内容左右靠齐方式)
varStyleValue:打印风格值。此处风格值“2”(1--左对齐、2--居中、3--右对齐,缺省值1)
名称:设置打印模式
格式:SET_PRINT_MODE(strModeType,varModeValue)
功能:设置人工双面打印模式等。
参数说明:strModeType:模式类型名。此处类型名“CUSTOM_TASK_NAME”:设置本次输出的打印任务名(打印任务池里的“文档名”)
varModeValue:模式类型值,整数或字符型。此处类型值为字符型,可以是汉字,未限制长度,本设置比PRINT_INIT或PRINT_INITA函数设置的打印任务名优先级高,如此以来可以实现在同一套配置文件下起多个打印任务名,以利于按打印任务名管理的输出。
注意:以上参数描述仅针对本经验分享到的代码作为说明,实际上,Lodop打印控件的函数其参数非常丰富,欲一睹Lodop打印控件的强大请大家参考**手册详细说明!
本站声明:本站部分文章来自网络,由用户上传分享,如若内容侵犯了您的合法权益,可联系我们进行处理。文章仅供大家学习与参考,不**本站立场。