Java的云打印Lodop

 更新时间:2016年07月14日 15:51:18   作者:枫桥沐雪  
这篇文章主要介绍了Java的云打印Lodop 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能足够强大,开创WEB打印开发的新局面。

Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实现复杂的打印任务,尽量减少使用者的知识累赘。控件发布包有3个系统文件组成,全部功能用几个控件参数和2组功能函数来实现。

打印某一个网页上的内容我们都经常遇到过,比如网上申请港澳通行证时需要填写申请表,然后把申请表给打印出来。像这样的打印技术是怎么实现?这种打印可以通过一种叫云打印的插件来做,按我的理解云打印的技术把需要打印的内容上传到“云”服务器,然后经过服务器传输到打印机中。

平时我们上网的时候可以直接在某个网页上点击打印,这种打印叫做网络打印,是将数据存放在打印设备或打印机内置的存储设备上,而云打印是将数据存放到“云”端。

打印技术在很多开发项目中都会用到,我们项目组已经开发完的一个塘厦项目中就用到了打印技术,打印实现需要在eclipse中加入已经下载好的打印文件。

接下来是整个打印实现的过程:

(1)准备材料

在Java编译器eclipse中,把上面下载好的这个文件放到对应的文件夹中,放哪都行,只要引用的时候路径引用对就行。

.exe文件是在客户端需要安装的一些插件,看浏览器(客户端)是多少位的就按照哪个。

这个打印只和前端有关,后台代码不需要做什么。

(2)需求要实现的效果

点击打印后这个页面的传到打印页面,预览后打印出A4纸。

(3)在代码里面实现

首先要print.html页面引用打印的JS文件

<!-- 打印插件 -->
<script src="/js/Lodop/LodopFuncs.js" type="text/javascript"></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></embed>
</object>

这是打印的html页面

<form action="offcomplete/print" method="post">
<input type="hidden" id="id" name="offBatchfile.id"
value="${offBatchfile.id!}" />
<%if(off.display_Name == null){%>
<div class="print_btn_box">
<a href="#" onclick="PrintURL()" class="btn btn-default"><i class="fa fa-print"></i>打印</a> 
<a href="/offcomplete/export/${printUsefullId!}" class="btn btn-default"><i class="fa fa-file-word-o"></i>下载</a>
</div>
<%}%>
<div align="center" id="print">
<% include("/offcomplete/view.html"){}%>
</div>
</form>

然后给打印按钮一个 click 事件

<script type="text/javascript">
//打印注册
function PrintURL() {
try {
var LODOP = getLodop(document.getElementById('LODOP_OB'), document
.getElementById('LODOP_EM'));
LODOP.PRINT_INIT("");
LODOP.SET_PRINT_STYLE("FontSize", 18);
LODOP.SET_PRINT_STYLE("Bold", 1);
LODOP.ADD_PRINT_HTM(45, 55, 770, 1004, document
.getElementById("print").innerHTML);
LODOP.PREVIEW();
} catch (e) {
}
}
</script>

如果这些步骤都做完了就可以实现打印了,在客户端打印的时候可能会遇到一些问题(IE浏览器不会出现),比如要提示这样的安装信息。那就说明没有安装 install_lodop 安装前最好看一下电脑的操作系统和所用的浏览器是多少位的,分为32位和64位,选择安装。

希望我的分享能留有余香,我建议不管做什么样的Web项目,浏览器的选择还是挺重要的。

一般来说我习惯开始就用IE,因为不管是谁买了电脑,微软的东西肯定是必不可少的就装在了系统里,除非不是Windows操作系统的电脑,而且IE对很多浏览器来说算是最低端的,其他浏览器多多少少也会有IE内核,开发出来的东西最低端的浏览器运行都不出问题,那根据客户下载喜好的高级浏览器那就更没问题了,理论上是这么的,低版本的都能过关了,更何况高版本的。当然作为开发者还是青睐于狐火浏览器,用它来调试比较好。

相关文章

  • Spring Boot企业常用的starter示例详解

    Spring Boot企业常用的starter示例详解

    这篇文章主要给大家介绍了关于Spring Boot企业常用starter的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Java实现反转一个链表的示例代码

    Java实现反转一个链表的示例代码

    本文主要介绍了Java实现反转一个链表的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java使用Redisson分布式锁实现原理

    Java使用Redisson分布式锁实现原理

    Redisson分布式锁 之前的基于注解的锁有一种锁是基本redis的分布式锁,这篇文章主要介绍了Java使用Redisson分布式锁实现原理,非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • 【MyBatis源码全面解析】MyBatis一二级缓存介绍

    【MyBatis源码全面解析】MyBatis一二级缓存介绍

    下面小编就为大家带来一篇【MyBatis源码全面解析】MyBatis一二级缓存介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 使用java + selenium + OpenCV破解网易易盾滑动验证码的示例

    使用java + selenium + OpenCV破解网易易盾滑动验证码的示例

    这篇文章主要介绍了使用java + selenium + OpenCV破解网易易盾滑动验证码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Java8 Stream教程之collect()的技巧

    Java8 Stream教程之collect()的技巧

    Java8引入了全新的Stream API,这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同,下面这篇文章主要给大家介绍了关于Java8 Stream教程之collect()的技巧,需要的朋友可以参考下
    2022-09-09
  • 解决Eclipse中java文件的图标变成空心J的问题

    解决Eclipse中java文件的图标变成空心J的问题

    这篇文章主要介绍了解决Eclipse中java文件的图标变成空心J的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Spring中如何动态注入Bean实例教程

    Spring中如何动态注入Bean实例教程

    这篇文章主要给大家介绍了关于Spring中如何动态注入Bean的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • Java guava框架LoadingCache及CacheBuilder本地小容量缓存框架总结

    Java guava框架LoadingCache及CacheBuilder本地小容量缓存框架总结

    Guava Cache本地缓存框架主要是一种将本地数据缓存到内存中,但数据量并不能太大,否则将会占用过多的内存,本文给大家介绍Java guava框架 LoadingCache及CacheBuilder 本地小容量缓存框架总结,感兴趣的朋友一起看看吧
    2023-12-12
  • 解析Orika的MapperFacade 属性赋值的使用问题

    解析Orika的MapperFacade 属性赋值的使用问题

    在我们实际开发中,常常会有对象与对象之间的转化,或者把一个对象的数据转化到另一个数据之中,如果我们手动的一个一个的set就会比较麻烦,代码段看起来也会比较长。而Orika的MapperFacade就是解决这个问题的,实现对象属性的复制
    2021-12-12

最新评论