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 插件
java web 打印(lodop)案例的更多相关文章
- JAVA WEB项目开发案例精粹
http://www.blogjava.net/zongbao/archive/2012/07/24/383884.htmlJAVA WEB项目开发案例精粹.pdf main Alt + / => ...
- Web打印--Lodop API
Lodop是一款专业的WEB打印控件,其设计目标是简单易用.功能足够强大,开创WEB打印开发的新局面. Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实 ...
- IT兄弟连 Java Web教程 经典案例2
案例需求:写一个用户登录的html页面有账号和密码,并在登录的Servlet中获取登录的账号和密码,如果账号是abc密码是123则向浏览器输出登录成功,否则向浏览器输出登录失败. 案例实现: ● h ...
- Java Web 开发进阶案例之人事管理系统的完整实现
技术:Java+ jsp + servlet+ javabeans +sql+tomcat 概述 本系统的主要任务是实现人事管理系统的系统化和自动化管理, 主要包括招聘入 职.到期离职和员工调动信 ...
- java web 之 SpringMVC4.x配置
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: 有 ...
- 2013第39周一Web打印
2013第39周一Web打印 项目中遇到了Java Web打印问题,简单调用IE浏览器的打印不能完全满足要求,于是就搜集了Web打印相关的主题,简单汇总一下.web打印难点在分页.页面纸张设置,页眉页 ...
- Atitit.java swing打印功能 api attilax总结
Atitit.java swing打印功能 api attilax总结 1. 打印方式有三种:2 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.2 ...
- AngularJs与Java Web服务器交互
AngularJs是Google工程师研发的产品,它的强大之处不是几句话就能描述的,只有真正使用过的人才能体会到,笔者准备在这篇文章中,以一个简单的登录校验的例子说明如何使用AngularJs和Web ...
- WEB打印控件LODOP的使用
有人说她是Web打印控件,因为她能打印.在浏览器中以插件的形式出现,用简单一行语句就把整个网页打印出来: 有人说她是打印编程接口,因为她介于浏览器和打印设备之间,是个通道和桥梁,几乎能想到的打印控制事 ...
随机推荐
- MODEL-View-Controller,既模型-视图-控制器
Swing组件采用MVC(MODEL-View-Controller,既模型-视图-控制器)设计模式,其中模型(Model)用于维护组件的各种状态,视图(View)是组件的可视化表现,控制器(Cont ...
- 说说自己对hibernate一级、二级、查询、缓存的理解。
说说自己对hibernate一级.二级.查询.缓存的理解. 2016-03-14 21:36 421人阅读 评论(0) 收藏 举报 分类: web开发(19) 版权声明:本文为博主原创文章,未经博 ...
- linux -- 服务开机自启动
好吧,最近需要用到开机启动服务,百度了一下,几乎都是一个版本,然后之间各种传递.我也抄个 ******************************************************* ...
- vsearch 去除重复序列和singleton 序列
在16S数据分析中,为了减少聚类的时间,提高准确度,需要去除重复序列,而singleton序列因为没有其他的序列作为验证,可信度不是很高,也需要去除,通常情况下使用usearch 完成这2项任务,但是 ...
- 《C++ Without Fear》 第1章 第一个C++程序
机器码,CPU的“母语”,每条计算机指令就是一个由1和0构成的独一无二的组合(或代码). endl是“endl line”的缩写,所以它应该念作“end ELL”而不是“end ONE”.
- ulimit设置句柄数
这几天在做一个性能测试,写了一个模拟发送http的程序.模拟100并发的情况下,随机发http get的请求.放到服务器上运行一段时间抛出Too many open files的异常. 这几天在做一个 ...
- 教您如何在Word的mathtype加载项中修改章节号
在MathType数学公式编辑器中,公式编号共有五部分内容:分别是章编号(Chapter Number).节编号(Section Number).公式编号(Equation Number).括号(En ...
- Invalidate()函数
Invalidate( ) :使整个窗口客户区无效, 并进行更新显示的函数 介绍 void Invalidate( BOOL bErase = TRUE ); 参数: bErase 决定了是否要在WM ...
- 3、手把手教React Native实战之flexbox布局
flexbox是Flexible Box的缩写,弹性盒子布局 主流的浏览器都支持 flexbox布局是伸缩容器(container)和伸缩项目(item)组成 Flexbox布局的主体思想是元素可以 ...
- 分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?
我们知道,在早期的RocketMQ版本中,是有依赖ZK的.而现在的版本中,是去掉了对ZK的依赖,转而使用自己开发的NameSrv. 并且这个NameSrv是无状态的,你可以随意的部署多台,其代码也非常 ...