• Web打印控件Lodop实现证件套打


    第一次接触Lodop大概是在两年前了,那时候研究Lodop主要是为了验证它能不能实现打印时在不修改内容的前提下调整样式,结果是ok的,如今又一次接触它,是因为工作中需要使用它了,于是再一次碰面

    Lodop的官方网站http://www.lodop.net/index.html很简单,但却很全面,有控件介绍,有在线示例,这些就已经足够了

    第一步,当然要先从下载开始,下载最新版本的控件安装包,下载技术手册

    第二步,根据技术手册的说明,完成一个实例,其实很简单了,Lodop真的做到了分分钟就能实现Web套打,先看看最后实现的效果


    很酷吧,有背景,有文本,有图像,证件套打基本的元素都有了

    下面看看代码

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
    2. <%  
    3.     String path = request.getContextPath();  
    4.     String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";  
    5. %>  
    6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    7. <html>  
    8.     <head>  
    9.         <title>index.html</title>  
    10.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    11.         <script language="javascript" src="lodop/LodopFuncs.js"></script>  
    12.         <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>  
    13.             <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed>  
    14.         </object>  
    15.   
    16.     </head>  
    17.   
    18.     <body>  
    19.         <script language="javascript">  
    20.             var LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM'));  
    21.         </script>  
    22.         <br>  
    23.         <button type="button" onclick="design()">  
    24.             设计模板  
    25.         </button>  
    26.               
    27.         <button type="button" onclick="view()">  
    28.             打印预览  
    29.         </button>  
    30.         <br>  
    31.         <textarea id="templateCode" cols="100" rows="30" style="#fff;"></textarea>  
    32.     </body>  
    33.     <script type="text/javascript">  
    34.     function view() {  
    35.         init();  
    36.         LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",1);  
    37.         LODOP.PREVIEW();  
    38.     }  
    39.     function design() {  
    40.         init();  
    41.         document.getElementById('templateCode').value=LODOP.PRINT_DESIGN();  
    42.     }  
    43.   
    44.     function init() {  
    45.         LODOP.PRINT_INIT("打印身份证");  
    46.         LODOP.ADD_PRINT_SETUP_BKIMG("<img border='0' src='<%=basePath%>/images/身份证背面.png'>");  
    47.         LODOP.SET_PRINT_STYLE("FontSize",11);  
    48.         LODOP.ADD_PRINT_TEXT(184,117,172,20,"1234567890X");  
    49.         LODOP.SET_PRINT_STYLEA(0,"FontName","新宋体");  
    50.         LODOP.SET_PRINT_STYLEA(0,"FontSize",10);  
    51.         LODOP.ADD_PRINT_TEXT(34,63,46,20,"张三");  
    52.         LODOP.SET_PRINT_STYLEA(0,"FontSize",9);  
    53.         LODOP.ADD_PRINT_TEXT(61,72,22,20,"男");  
    54.         LODOP.SET_PRINT_STYLEA(0,"FontSize",9);  
    55.         LODOP.ADD_PRINT_TEXT(60,142,21,20,"汉");  
    56.         LODOP.SET_PRINT_STYLEA(0,"FontSize",9);  
    57.         LODOP.ADD_PRINT_TEXT(114,62,219,20,"北京市东城区xxx街道第201号");  
    58.         LODOP.SET_PRINT_STYLEA(0,"FontSize",9);  
    59.         LODOP.ADD_PRINT_TEXT(85,65,41,20,"2015");  
    60.         LODOP.SET_PRINT_STYLEA(0,"FontSize",9);  
    61.         LODOP.ADD_PRINT_TEXT(85,118,22,20,"01");  
    62.         LODOP.SET_PRINT_STYLEA(0,"FontSize",9);  
    63.         LODOP.ADD_PRINT_TEXT(85,150,23,20,"31");  
    64.         LODOP.SET_PRINT_STYLEA(0,"FontSize",9);  
    65.         LODOP.ADD_PRINT_IMAGE(30,247,63,63,"<img border='0' src='<%=basePath%>/images/头像.png'>");  
    66.     }  
    67. </script>  
    68. </html>  


    短短几十行js和html代码就足够了,设计按钮效果如下图所示:


    需要说明的是,Lodop控件安装文件需要和打印的页面放在同一个目录下,否则提示安装的链接会找不到安装包文件



    最后,简单说下Lodop的优势吧,之所以选用Lodop是因为:

    1、兼容性好,主流的浏览器都支持了;

    2、插件能实现自动安装提醒,并且不需要其他额外的设置;

    3、能够实现权限控制,比如在不修改内容的前提下修改打印的样式,比如调整字体,比如调整位置……。支持的权限控制如下:


    4、用户设计的打印页面,可以作为个性化的个人设置,系统维护的同一个模板可以适应不同的打印机。

  • 相关阅读:
    JDK7与JDK8环境共存与切换:先安装jdk7,配置好环境变量后再安装jdk8
    Maven环境配置
    JDK的安装
    Access2010打开系统表MSysObjects的控制权限
    Spring aop 简单示例
    redis集群搭建
    springmvc中拦截器与springmvc全局异常处理器的问题
    自定义springmvc统一异常处理器(实现HandlerExceptionResolver接口)不起作用的一种情况
    一句SQL实现MYSQL的递归查询
    2002年的决战坦克,重新玩一遍。qq群号:1035127306
  • 原文地址:https://www.cnblogs.com/lcword/p/8268002.html
Copyright © 2020-2023  润新知