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
前一段时间公司一项目比较特殊,客户要求打印单必须是淘宝上卖的那种三联打印单.如果还是使用原来系统自带的打印的话,就会造成无法打印出来理想的效果,于是找了下相关的打印控件,比较网络上比较流行的几款插件, ...
随机推荐
- Python脱产8期 Day12 2019/4/26
一 函数默认值的细节 1.如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 例: a = 100def fn(num=a): print(num) # 100a = ...
- 【LOJ 2145】「SHOI2017」分手是祝愿
LOJ 2145 100pts 这题...BT啊 首先我们很容易想出\(dp(msk)\)表示现在灯开关的情况是\(msk\),期望通过多少步走到终结态. 很明显\(dp(msk)=\frac{1}{ ...
- oracle 创建表空间TABLESPACE
题外话: 在oracle中,我们的数据库用户都有一个默认表空间归属,当在该用户下创建表或其他对象时默认会将其归属在默认表空间: 不排除后期修改了用户默认表空间的情况存在,此后新加入的对象默认会放置在新 ...
- 【vue】iView-admin后台管理系统
1.目录手册解析 2.跨域解决(axios访问服务器由于前端地址和后端地址不同源会出现跨域问题) 实例2 3.动态菜单导航+权限 4.webstorm 配置 Eslint 代码检查和自动修复
- MongoDB非关系型数据库开发手册
一:NoSql数据库 什么是NoSQL? NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称. NoSQL用于超 ...
- 分布式系统消息中间件——RabbitMQ的使用思考篇
分布式系统消息中间件--RabbitMQ的使用思考篇 前言 前面的两篇文章分布式系统消息中间件--RabbitMQ的使用基础篇与分布式系统消息中间件--RabbitMQ的使用进阶篇,我们简单介 ...
- form,ajax注册,logging日志使用
一.form表单类型提交注册信息 二.ajax版本提交注册信息 <!DOCTYPE html> <html lang="en"> <head> ...
- NoSQL是什么?
导读 NoSQL(not only sql,不仅仅是SQL),是一项全新的数据库革命性运动,泛指非关系型数据库,对于NoSQL这个新兴的名词,每个人的理解都不同.其实NoSQL一词最早出现于1998年 ...
- java中流的简单小结
1.分类 按字节流分: InputStream(输出流) OutputStream(输入流) 按字符流分: Reader Writer 提示:输入.输出是站在程序的角度而言,所有输入流是“读 ...
- l^oo不可分的两个注意点
1 不理解等一个等式 , 2.不理解为什么,一个可分的集合里面有不可数的子集?谢谢 1是 2.是可分集合里面每个元素 做中心后的一个开覆盖 所有0 1序列是和所有二进制小数 可以一一对应 而 ...