zoukankan      html  css  js  c++  java
  • java web 打印(lodop)案例

     应需求接触到lodop 打印、

    首先在lodop官网下载相关文件(js、css等):http://www.lodop.net/download.html

    在下载好的包里  除了html页面  其他的js、css等拷贝到项目的一个目录下、新建个lodop文件夹。  

    在页面头部加入下面等信息、这里注意的是引入的文件地址

    <script language="javascript" src="../res/lodop/LodopFuncs.js"></script>
    <object  id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0> 
           <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="../res/lodop/install_lodop32.exe"></embed>
    </object> 

    打印有两种方式

    第一种可以直接在js代码拼接打印信息

              var LODOP=getLodop();
                    LODOP.PRINT_INIT("test套打");
                    LODOP.SET_PRINT_PAGESIZE(1,'200mm','152.4mm','');    //设置纸张高度
    
                    LODOP.ADD_PRINT_TEXT(10,250,157,20,'客户公司名称');     //这里的数字是调整相应位置       
                    LODOP.ADD_PRINT_TEXT(432,149,157,20,'联系电话');  
                    
                    //LODOP.PRINT();  //直接打印
                    LODOP.PREVIEW();  //打印预览

    第二种是 html代码写好打印信息,再到js 获取html内容 用lodop进行添加

                    var LODOP=getLodop();
                    LODOP.PRINT_INIT("test套打");
                    LODOP.ADD_PRINT_HTM(10,55,"100%","100%",document.getElementById("textarea01").value);
                    //LODOP.PRINT(); //直接打印
                    LODOP.PREVIEW(); //打印预览
     <textarea rows="15"  cols="80" style="display: none;" id="textarea01">
    <table   border="1" width="360" height="220" style="border-collapse:collapse;border:solid 1px" bordercolor="#000000">
      <tr>
        <td width="100%" height="240">
          <p align="center"> 
          <font face="隶书" size="5" style="letter-spacing: 10px">郭德强</font>
          <p align="center"><font face="宋体" size="3">科学家</font></p>
          <p align="left"><font face="宋体" size="3"> 地址:中国北京社会科学院附近东大街西胡同</font></p>
          <p align="left"><font face="宋体" size="3"> 电话:010-88811888</font></p>
          <p><br>       
          </p>
        </td>
      </tr>
    </table>
    </textarea>  

    下面附上测试页面的代码

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    
    <script type="text/javascript" src="../res/vankewebstyle/js/jquery-1.9.0.js"></script>
    <script language="javascript" src="../res/lodop/LodopFuncs.js"></script>
    <object  id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0> 
           <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="../res/lodop/install_lodop32.exe"></embed>
    </object> 
    <script type="text/javascript">
            $(function(){
                $("#kkk").click(function(){
                    var LODOP=getLodop();
                    LODOP.PRINT_INIT("test套打");
                    LODOP.ADD_PRINT_HTM(10,55,"100%","100%",document.getElementById("textarea01").value);
                     /*  LODOP.SET_PRINT_PAGESIZE(1,'200mm','152.4mm','');    //设置纸张高度
    
                    LODOP.ADD_PRINT_TEXT(10,250,157,20,'客户公司名称');            
                    LODOP.ADD_PRINT_TEXT(432,149,157,20,'联系电话');   */ 
                    
                    //LODOP.PRINT();
                    LODOP.PREVIEW();
                })
            })
        </script>
    <body>
    <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0 pluginspage="../res/lodop/install_lodop32.exe"></embed>
     <textarea rows="15"  cols="80" style="display: none;" id="textarea01">
    <table   border="1" width="360" height="220" style="border-collapse:collapse;border:solid 1px" bordercolor="#000000">
      <tr>
        <td width="100%" height="240">
          <p align="center"> 
          <font face="隶书" size="5" style="letter-spacing: 10px">郭德强</font>
          <p align="center"><font face="宋体" size="3">科学家</font></p>
          <p align="left"><font face="宋体" size="3"> 地址:中国北京社会科学院附近东大街西胡同</font></p>
          <p align="left"><font face="宋体" size="3"> 电话:010-88811888</font></p>
          <p><br>       
          </p>
        </td>
      </tr>
    </table>
    </textarea>   
    <input type="button"  value="打印凭证" id="kkk"/>
    </body>
    </html>

    更多相关配置设置等可查看官网:http://www.lodop.net/demo.html

    在下测试、谷歌浏览器不支持  其它火狐、ie、360、QQ浏览器均可

    补充:在谷歌或其它浏览器不能打印的情况下、找到了如下办法

    用了window的print方法 在其它浏览(360、等)不能预览 ,而是直接弹出打印设置、只有谷歌弹出了打印预览的界面      

    $("#kp").click(function(){ dy1html=document.getElementById("textarea01").value; //获取打印内容 window.document.body.innerHTML=dy1html; //将获取的内容替换当前页 window.print(); //打印当前页 document.location.reload(); //重新加载页面 })

    另外在百度时还搜索到 

    ireport、jqprint 插件
  • 相关阅读:
    editplus设置自动换行方法 editplus自动换行设置步骤
    com.google.gson.stream.MalformedJsonException
    系统架构设计师 笔记1
    微信文档采用第三方方式打开选择qq
    手机不弹toast解决方法
    Excel 如何快速切换到最后一行
    vue系列4:引入插件
    vue系列3:引入css和js
    vue系列2:npm install 命令详解
    vue系列1:创建vue项目
  • 原文地址:https://www.cnblogs.com/dscs/p/5436127.html
Copyright © 2011-2022 走看看