天天看点

利用lodop打印控件轻松实现批量打印

当然在了解之前你也可以使用Prince来打印

Lodop是什么?

  • 有人说她是Web打印控件,因为她能打印、在浏览器中以插件的形式出现,用简单一行语句就把整个网页打印出来;
  • 有人说她是打印编程接口,因为她介于浏览器和打印设备之间,是个通道和桥梁,几乎能想到的打印控制事项都能做到;
  • 有人说她是JavaScript的扩展,因为她所有功能就那么几个语句,和JS语法一样,一看就明白个究竟;
  • 有人说她是报表打印工具,因为那个add_print_table语句把报表统计的那点事弄了个明明白白;
  • 有人说她是条码打印工具,因为用了她再也不用后台生成条码图片了,前端一行指令就动态输出清晰准确的条码,一维二维都行;
  • 有人说她是图表打印工具,因为用她能输出几乎能想象的任何图表,虽然没那么豪华,但什么饼图、折线图、柱图甚至复合图等等都不在话下;
  • 有人说她是个小玩意,因为她体积太小了,才2M多,她所包含的其中任何一个对照工具都是她的好几倍(例如条码打印控件、图表控件等);
  • 有人说她是套打教案,因为以Lodop+JS实现套打这种模式,在网上已被吵吵为教科书般的解决方案;
  • 有人说她是Web打印控件的“终结者”,因为接触“她”后再不想别的“她”;
  • 有人说她就是一个Web编程小工具,因为有了她,在BS下的打印终于像cs下那种随意而高效了;
  • 但我们说,她是全国1000多家软件公司的智慧结晶,诞生10年了,几乎每个功能细节都蕴藏着无数开发者的期待和汗水;
  • 她就是Lodop(读音“劳道谱”),没有别的名称,她是web开发的必选伴侣;
  • 现在,她又添了个小兄弟,名叫C-Lodop(可编程的云打印),未来将由他开创......

看看Lodop 和 C-Lodop演示

  • 从这里进入Lodop 、C-Lodop产品在线演示.

去下载Lodop 和 C-Lodop

  • 从这里下载最新版本,也可以重温历史版本.

最近在做一个打印程序,要实现批量打印功能,在网上找了很多天,也在tp官网咨询大牛们,对大家的的提议我一一进行了研究,总结如下:

要实现批量打印可以有两个办法:

一是利用专业的报表程序,能实现十分复杂的需求,但学习报表也是很痛苦的一件事,我专心研究了一天都没啥进展,也许我实在太菜了。这种方法推荐锐浪报表,免费还好用。

二是利用js插件实现,也在网上找了很多,最后感谢hunduncn,他建议我使用lodop(详见:http://www.thinkphp.cn/topic/12938.html),由于对html+css十分熟悉,所以上手不难,真的很好用。

Lodop(标音:劳道谱,俗称:露肚皮)是专业WEB控件,用它既可裁剪输出页面内容,又可用程序代码直接实现复杂打印。控件功能强大,却简单易用,所有调用如同javascript扩展语句。官网:http://www.lodop.net/,从官网下载的程序中有很多例子,也非常全面。

下面奉上代码:

  1. <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script language="javascript" src="LodopFuncs.js"></script>
    </head>
    <body>
    <form id="form1">
    11111
    </form>
    <a href="javascript:prn1_preview()" target="_blank" rel="external nofollow" >打印预览</a><br/>
    <a href="javascript:prn1_print()" target="_blank" rel="external nofollow" >直接打印</a>
    <script language="javascript" type="text/javascript">   
            var LODOP; //声明为全局变量 
        function prn1_preview() {    
            CreateOneFormPage();    
            LODOP.PREVIEW();    
        };
        function prn1_print() {        
            CreateOneFormPage();
            LODOP.PRINT();    
        };
        function CreateOneFormPage(){
            LODOP=getLodop();  
            LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_表单一");
            LODOP.SET_PRINT_STYLE("FontSize",18);
            LODOP.SET_PRINT_STYLE("Bold",1);
            LODOP.ADD_PRINT_TEXT(50,231,260,39,"");
            LODOP.ADD_PRINT_HTM(88,200,350,600,document.getElementById("form1").innerHTML);
        };
    </script>
    </body>
    </html>
               

应该都能看懂,通过id操作,要是实现打印时候的样式导入,代码如下:

  1.     function CreateOneFormPage(){
            LODOP=getLodop(); 
            var strStyleCSS="<link href='print.css' type='text/css' rel='stylesheet'>";
            var strFormHtml=strStyleCSS+"<body>"+document.getElementById("form1").innerHTML+"</body>";
            LODOP.PRINT_INIT("打印准考证");
            LODOP.ADD_PRINT_HTM(0,0,"100%","100%",strFormHtml);
        };
               

ps:lodop的A4纸张,打印区域大小为758px*1090px