天天看點

利用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