LODOP打印控件进行批量打印
Lodop打印控件批量打印的方式:
1.批量打印每页内容相同的:
(1)批量打印相同内容的很多纸张,可以设置打印份数,把该内容打印出多份。
2.批量打印每页不同内容的:
(1)通过在一个任务中分页,循环添加页数,每页添加不同内容,一个任务中打印多页。
(2)一个任务中一页,循环多个任务,每个任务添加不同内容。
(3)多任务与多页相结合,既分页又分任务,循环多任务,每个任务中循环多页。
使用建议:
1.批量打印同样的内容,可用多份,需要多少份打印多少份。
2.批量打印不同内容,页数很少,每页内容也很少,需要预览,可在一个任务中分多页。
3.批量打印不同内容,页数很少,不需要预览,直接打印,可一个任务分页,也可一页分多任务,均可。
4.批量打印大批量不同内容,内容多,页数很多,建议分页分任务,分组打印,提高打印性能。
打印过多页,不拆分任务,打印成百上千复杂页面,会导致需要等待一段时间,例如点语句后可能很久才出现预览界面。
打印上千上万个任务,任务太多,对操作系统负担大,可酌情分页,分页分任务进行折中处理。
简单来说,就是相同内容,可设份数。
不同内容,可多任务,可任务中分页,可多任务+分页进行组合分组。
批量多任务打印的时候,如果都是相同的模版,可以用同一个Lodop任务名,如果担心打印机队列里都是统一名称,无法区分,可用语句控制,为每个任务取不同的打印机队列名,方法可查看本博客的相关博文:LODOP循环多任务 同模版只设置不同队列任务名
Lodop打印语句最基本结构介绍(什么是一个任务)
Lodop中的一个任务,就是从PRINT_INIT(或PRINT_INITA)初始化到PRINT(或预览等),是一个任务。
方法:
设置打印份数:
LODOP.SET_PRINT_COPIES(4);//设置打印三份
LODOP.SET_PRINT_COPIES(document.getElementById('T6').value);//设置打印名为T6文本框里输入的值的份数。
设置一个任务分多页,没页内容不同:
初始化//任务开始
for (设置循环)
{
分页语句
根据循环添加不同打印项
}
打印(或预览)//任务结束
设置多个任务,循环多任务:
for (设置循环)
{
初始化//任务开始
根据循环添加不同打印项
打印(或预览)//任务结束
}
设置分页分任务,分组打印,
for (设置循环)
{
初始化//任务开始
for (设置循环)
{
分页语句
根据循环添加不同打印项
}
打印(或预览)//任务结束
}
例如,如下四个方法代码,实现打印四张:
第一个把相同的内容打印四份
第二个一个任务打印四页
第三个打印四个任务
第四个,打印两个任务,每个任务两页,共打印四页。
具体演示会代码:
当中的console.log是由于分2页为一个任务,打印两个任务,需要确定数组下标是0,1,2,3,所以加了个console.log查看一下循环中每次i+j的值是否是否正确。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body><input type="text" id="T6" size="2" value="4" name="copies">
<a href="javascript:prn1_preview()">预览打印多份一样的内容</a><br>
<a href="javascript:prn1_preview2()">预览打印多页</a><br>
<a href="javascript:prn1_preview3()">直接打印多任务</a><br>
<a href="javascript:prn1_preview4()">直接打印分页分任务 分组打印</a>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn1_preview() {//批量打印相同内容可以用份数
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.SET_PRINT_PAGESIZE(1,300,500,"");
LODOP.SET_PRINT_COPIES(document.getElementById('T6').value);
LODOP.ADD_PRINT_TEXT(75,6,100,20,"一个文本");
//LODOP.PRINT_DESIGN();
LODOP.PREVIEW();
};
function prn1_preview2() { //一个任务中循环多页,每页内容不同
LODOP=getLodop();
var wenben=["一号文本","二号文本","三号文本","四号文本"];
LODOP.PRINT_INIT("");//初始化在循环外
LODOP.SET_PRINT_PAGESIZE(1,300,500,"");
for (i=0;i<wenben.length;i++)
{
LODOP.NewPage();
LODOP.ADD_PRINT_TEXT(75,6,100,20,wenben[i]);
}
//LODOP.PRINT_DESIGN();
LODOP.PREVIEW();
};
function prn1_preview3() { //循环多个任务,每个任务内容不同
LODOP=getLodop();
var wenben=["一号文本","二号文本","三号文本","四号文本"];
for (i=0;i<wenben.length;i++)
{
LODOP.PRINT_INIT("");//初始化在循环中
LODOP.SET_PRINT_PAGESIZE(1,300,500,"");
LODOP.ADD_PRINT_TEXT(75,6,100,20,wenben[i]);
LODOP.PRINT();
}
};
function prn1_preview4() { //循环多个任务,任务中循环页数,分页分任务
LODOP=getLodop();
var wenben=["一号文本","二号文本","三号文本","四号文本"];
for (i=0;i<4;i=i+2)
{
LODOP.PRINT_INIT("");//初始化在外循环中
LODOP.SET_PRINT_PAGESIZE(1,300,500,"");
for (j=0;j<2;j++)
{
console.log(i+j);
LODOP.ADD_PRINT_TEXT(75,6,100,20,wenben[i+j]);
LODOP.NewPage();
}
//LODOP.PRINT_DESIGN();
LODOP.PRINT();
}
};
</script>
</body>
简单点描述,就是循环多页,在任务中循环页数;循环多任务,直接循环多任务。
数据和页数过多,需要分页分任务,分组打印,提高性能。
注意,批量打印建议用直接打印,如果用预览,lodop会弹出多次,c-lodop会提示窗口已打开。
LODOP打印控件进行批量打印的更多相关文章
- wpf打印控件 实现分页打印控件功能
因为 要实现打印 wpf listbox控件 数据特别多 要打印在 几张纸上 找了几天 都没有找到相关的例子 现在 解决了 在这里和大家分享一下 public void print(Fram ...
- (转)WEB第三方打印控件[ASP.NET常用工具]
本文转载自:http://blog.csdn.net/chz_cslg/article/details/25415347 在B/S模式开发中,打印是个很大的困扰.无论是采用页面直接输出或者引用WORD ...
- WEB免费打印控件推荐
在WEB系统中,打印的确是个烦人的问题. 要么自己开发打印控件,如果项目时间紧,肯定来不及. 要么购买成熟的打印控件,如果是大项目可以考虑,但如果项目只有几K到1.2W之间,这就麻烦了. 前段时间有机 ...
- C# ie通过打印控件点打印,总是弹出另存为xps的对话框
用的是lodop打印控件,点打印后,总是弹出另存为xps的对话框,后来在网上查到可能是把windows自带的Microsoft XPS Document Writer设为默认打印机的原因. 但现在没有 ...
- [2014.01.27]wfPrintOcx 票据打印控件 v5.3
支持选择打印机,并自动记忆选择的打印机. 适合打印各类票据格式. 支持画正方形.长方形.圆形.椭圆.横线.竖线.HTTP图片. 支持数字金额转换成中文大写金额. 可以设置固定宽度的文字自动换行. 组件 ...
- winform 对话框控件,打印控件
1.文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话框(SaveFileDialog) 2.字体对话框(FontDialog) 3.颜 ...
- 利用lodop打印控件轻松实现批量打印 (转载http://www.thinkphp.cn/topic/13085.html)
最近在做一个打印程序,要实现批量打印功能,在网上找了很多天,也在tp官网咨询大牛们,对大家的的提议我一一进行了研究,总结如下: 要实现批量打印可以有两个办法: 一是利用专业的报表程序,能实现十分复杂的 ...
- lodop打印控件一点记录
今天初步接触了下打印控件 LODOP实现了自动分页,高度宽度都可以自己设定来分页. 页码,使用LODOP.SET_PRINT_STYLE("ItemType", 2); LODOP ...
- 比较好用的web打印控件——Lodop
前一段时间公司一项目比较特殊,客户要求打印单必须是淘宝上卖的那种三联打印单.如果还是使用原来系统自带的打印的话,就会造成无法打印出来理想的效果,于是找了下相关的打印控件,比较网络上比较流行的几款插件, ...
随机推荐
- mysql 数据库磁盘占用量统计
查看某个表的磁盘占用量 select (data_length+index_length)/1024/1024 M from information_schema.tables where table ...
- 修复XSS跨站漏洞
XSS跨站漏洞最终形成的原因是对输入与输出没有严格过滤. 1.输入与输出 在HTML中,<,>,",',&都有比较特殊的意义.HTML标签,属性就是由这几个符合组成的.P ...
- B+Tree原理及mysql的索引分析
一.索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构. 我们知道,数据库查询是数据库的最主要功能之 ...
- Clustering[Spectral Clustering]
0. 背景 谱聚类在2007年前后十分流行,因为它可以快速的通过标准的线性代数库来实现,且十分优于传统的聚类算法,如k-mean等. 至于在任何介绍谱聚类的算法原理上,随便翻开一个博客,都会有较为详细 ...
- 对Android系统权限的认识
Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制 Android系统权限相关的内容 (一)linux文件系统上的权限 -rwxr-x--x ...
- 史上最全面的Docker容器引擎使用教程
目录 1.Docker安装 1.1 检查 1.2 安装 1.3 镜像加速 1.4 卸载Docker 2.实战Nginx 3.Docker命令小结 4.DockerFile创建镜像 4.1 Docker ...
- 微服务之:从零搭建ocelot网关和consul集群
介绍 微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成. 首先解释几个本次教程中需要的术语 网关 Gateway(API GW / API 网关),顾名思义,是企业 IT 在系统边界 ...
- wtf_1234
好无聊啊,今天困的厉害. 不想做任何事情 wtf bitch!
- flask登录插件 flask-login
Flask-Login为Flask提供了用户会话管理,它处理了日常的登入登出且长时间记住用户的会话 使用: 1.配置,初始化 LoginManager 创建实例 loginManger = Login ...
- mysqldump 和mysqlbinlog
一.mysqldump 1.备份test库 #mysqldump -uroot -p' test >test.sql 2.备份 -B参数 ' -B test >test_B.sql --B ...