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
前一段时间公司一项目比较特殊,客户要求打印单必须是淘宝上卖的那种三联打印单.如果还是使用原来系统自带的打印的话,就会造成无法打印出来理想的效果,于是找了下相关的打印控件,比较网络上比较流行的几款插件, ...
随机推荐
- APP耗电量测试
现象 APP耗电,导致电池续航能力不佳,如下图,在小米MIX2和iPhone X机型上后台静默一小时各应用的耗电排行: 基本概念 相对于PC来说,移动设备的电池电量是非常有限的,保持持久的续航能力尤为 ...
- git分支开发的好处
有不少开发者们不习惯使用Git分支开发.原因有如下几个方面?(1)不熟悉不习惯;(2)觉得太麻烦;今天我想说的是使用git分支开发绝对是一个高效版本控制的做法. 当你遇到测试人员给你提的bug,你只需 ...
- 如何让Node.js运行在浏览器端
Node.js又称服务端JavaScript.今天我为了解决一个问题,通过搜索引擎找到了如何将Node.js转成浏览器端可以运行的javascript.尽管这种方式有其局限性,但是还是可以用的. 1. ...
- ModelViewSet 路由 / django logging配置 / django-debug-toolbar使用
一.ModelViewSet 路由 因为我们正在使用ViewSet代替View,实际上已经不再需要自己来设计URL的配置了.将资源和视图.URL绑定到一起是一个可以自动完成的过程,只需要使用Route ...
- DataX
#!/bin/bash[ ! -d /opop ] && mkdir /opopcd /opopwget http://192.168.1.129/package/DataX/{jdk ...
- ZOJ - 2423-Fractal
A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on ...
- Volley使用
Volley是常用的网络请求框架,主要的用法如下: 获取字符串: public static void volleyTest1(final Context context){ RequestQueue ...
- BAT美团滴滴java面试大纲(带答案版)之三:多线程synchronized
继续面试大纲系列文章. 从这一篇开始,我们进入ava编程中的一个重要领域---多线程!多线程就像武学中对的吸星大法,理解透了用好了可以得道成仙,俯瞰芸芸众生:而滥用则会遭其反噬. 在多线程编程中要渡的 ...
- 爬虫(二)之scrapy框架
01-scrapy介绍 02-项目的目录结构: scrapy.cfg 项目的主配置信息.(真正爬虫相关的配置信息在settings.py 文件中) items.py 设置数据存储模板,用于结构化数据, ...
- Mysql启动找不到mysql.sock文件问题(Centos7)
刚装完Mysql5.7,将Mysql添加到开机自启.reboot之后mysql服务却没启动起来, 直接输入mysql –uroot –p ,出现如下错误,找不到mysql.sock文件.用servic ...