java 前端点击打印,关于Java Web打印的抉择

最近遇到一个项目,需要用到较为复杂的打印功能,包括批量打印等。

目前来说,一般一个简单的详情页面打印,直接调用window.print就行了;

但遇到复杂的时候,我们可能会想到用集成好的控件来解决,当然,如果你有时间又不怕麻烦,你也可以自己写一堆js。

这里,我就先抛砖引玉对两个比较常用的打印控件谈谈自己的看法。

文中所述两个打印控件均为免费版本,收费版本另当别论。

一、jatoolsPrinter

jatoolsPrinter号称真正的免费,不加水印,不限IP,兼容IE6+等等;

下载地址:http://printfree.jatools.com/

jatoolsPrinter的部署很简单,可以简单分为3个步骤:

1.将控件引入到项目中

111427694.jpg

2.编写打印js

function doPrint(how)

{

//打印文档对象.

var myDoc ={

documents: document,

// 在同一页面中,有多个可打印文档,他们可以用page_div_prefix属性来区别

// page_div_prefix前缀+page+页序号 构成可打印div的id,

// 如前缀为 'report1' ,则找到以 'report1page1'为id的div作为文档首页

// 该属性,默认值为空

page_div_prefix: "report",

copyrights: '杰创软件拥有版权  www.jatools.com'

};

// 调用打印方法

if(how == '打印预览...')

jatoolsPrinter.printPreview(myDoc );   // 打印预览

else if(how == '打印...')

jatoolsPrinter.print(myDoc ,true);   // 打印前弹出打印设置对话框

else

jatoolsPrinter.print(myDoc ,false);       // 不弹出对话框打印

}

3.给需要打印的div取id名

默认打印page1,page2,page3...,如果page_div_prefix不为空,需要在id前面加上page_div_prefix对应的值

杰表的优点就不说了,一大堆,这里说下最主要的两个缺失功能(当然,收费版应有尽有),

第一,不支持自动缩放打印,就是说,如果你的页面高度或者宽度过大,那么,肯定不完全打印,多余的部门会被截掉

解决的办法就是你只能把页面改小点来去兼容它;

第二,不支持打印隐藏对象,这个真的挺头疼,如果遇到批量打印,而且打印的内容需要到后台去查询的,这个就不能用了,

有个带点风险的解决办法,就是将你不显示出来的div设置z-index属性,放到显示内容的下面就行了。

二、LODOP

lodop同样免费,而且使用起来也很方便。

下载地址:http://www.lodop.net/download.html

lodop的部署:

1.引入lodop控件

2.编写打印js

var LODOP; //声明为全局变量

function prn1_preview() {

CreateOneFormPage();

LODOP.PREVIEW();

};

function prn1_print() {

CreateOneFormPage();

LODOP.PRINT();

};

function prn1_printA() {

CreateOneFormPage();

LODOP.PRINTA();

};

function CreateOneFormPage(){

LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM'));

LODOP.SET_PRINT_STYLE("FontSize",16);

LODOP.SET_PRINT_STYLE("Bold",1);

var htm = str+"

"+document.getElementById("page1").innerHTML+"";

LODOP.ADD_PRINT_HTM("0%", "0%", "100%", "100%", htm);

}

具体方法作用可以参考官网demo

LODOP最主要的优点就是可以指定打印哪个模块,只要给他一个id就行,真的是很方便,比较明显的缺点有两个:

第一,打印页面不能将原页面中css带过来,需要自己引入,具体方法见LODOP功能演示

第二,直接打印出来的页面,底部居然有LODOP的logo信息,具体信息:本页由【试用版打印控件Lodop6.0.5.6】输出,这个让我无法接受,估计用户看到也会发疯,

咨询过LODOP作者,确定需要购买注册号才能去掉。

总的说来,两个控件都很不错,虽然免费的功能不是很多,但一般的项目中应该也是够用了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36636.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2021年6月PMP考点

​下面地址来自: 2021年6月PMP报名选取考场时登记地址: 注意: 1、考场具体地址每次考试会有可能会有变更,下面地址仅供参考,请以外专局公布的考场和准考证上的地址为准(考前7天打印准考证地址为准&#xf…

linux web打印,曲折的 web 打印解决方法

最近做一个项目,是关于报告之类的,涉及到报告打印这个功能,真是坑了个爹啊。在网上找了很多方法,web打印有很多控件,如:杰表打印,lodop,等等。因为业务上的报表表格都是一些word文档&#xff0c…

中国开源正在走向成熟!

作者 | 唐小引、陈利鑫、屠敏 出品 | CSDN(ID:CSDNnews) 2020 年 7 月 15 日,由中国开源软件推进联盟(COPU)主办,赛迪传媒、《软件和集成电路》杂志社联合承办,CSDN 独家直播的 2020…

哪些城市有PMP考试考点?PMP考试考场都在哪?

有不少伙伴对PMP的考试点存在一定的疑问,全国PMP考试具体考点位置是在哪呢? 根据过往常用考点,我们给大家汇总了2022年PMP考试全国考场地址,一起来看看吧! 表格信息来自基金会官网11月27日PMP报名通知,仅作…

杰华特科创板上市:市值227亿 华为英特尔联想是股东

雷递网 雷建平 12月23日 杰华特微电子股份有限公司(简称:“杰华特”,股票代码为:“688141” )今日在科创板上市,发行价为38.26元。 杰华特此次发行5808万股,发行价为38.26元,募资总额…

基于STM32的28步进电机模块使用笔记

1、本次笔记所使用的器件。 (1)STM32F103VET6(野火开发板) (2)DM420S(海嘉杰创) (3)28步进电机带丝杆滑台(海嘉杰创) (4&a…

开发语言为verilog.基于fpga的多功能信号函数发生器设计

开发语言为verilog.基于fpga的多功能信号函数发生器设计。 能够产生6种波形。 其中矩形波的占空比从10%到90%可调。 输出频率和幅值可调。 原始工程适配与北京杰创永恒科技的ep4ce40实验箱。 又移植到100t开发平台上。 所以有quartus和vivado两个工程。 有完整仿真代码。 第一个…

ChatGLM-6B LLM大模型使用;P-Tuning微调;prompt角色扮演

ChatGLM-6B 是一个开源的、支持中英双语问答的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。 本机显卡只有6G(GTX 1660 Ti),所以刚好可以使用,用户可以在消费级的显卡上进行本地…

使用jatoolsPrinter实现套打

最近在工作中遇到了套打的需求,前前后后,花了不少时间,现在总结一下套打的实现方式。 一、设计思路 1、将待打印的文档扫描生成图片,作为网页的背景图片。 2、通过css将待打印的文字进行定位 3、使用jatoolsPrinter插件打印已定位好的网页信息。 二、设计实现 1、下载…

【编译原理】【C语言】实验一:手动构造词法分析器

C语言 实验环境:Visual Studio 2019 author:zoxiii 词法分析器 1、实验内容2、前期准备2.1 待分析的C语言子集的词法2.2 C语言子集的单词符号表示表2.3 C语言子集对应的状态转换图 3、分析过程3.1 词法分析子程序3.2 主程序3.3 源代码 4、测试5、遇到的问…

编译原理实验(1) 开发环境的安装与配置

flex词法分析器的安装与配置 版本:使用的Flex分析器版本为2.5.4。 下载并使用安装程序安装。 进行环境变量的设置: 此电脑–右键–属性–高级系统设置–环境变量 在系统变量中找到PATH,将flex安装后的bin目录加入PATH; 找到CLA…

Eclipse:使用Eclipse创建一个Java小练习项目

1、创建工程 就是说现在创建的工程是符合java的工程,而我们创建的是JAVAEE的工程,要不要使用java的透视图,这里选择 NO:https://blog.csdn.net/weixin_63610637/article/details/125099915?spm1001.2014.3001.5501http://这里选择yes的&…

反垃圾邮件网关工作原理-Coremail带你了解杰创智能如何使用邮件网关安全升级

杰创智能科技股份有限公司(以下简称杰创智能)成立于2008年,于2022年在深交所创业板挂牌上市。 公司采用广州、北京双总部运作模式,在全国范围内设立近30家分支机构,业务覆盖全国辐射全球。 随着杰创智能业务的飞速发展&#xff0…

零代码编程:用ChatGPT打造小宇宙播客下载软件2.0

之前用ChatGPT写了一个简单的小宇宙播客下载应用,但是实际使用一段时间后,发现有几个问题,比如:如果文件名中有一些特殊符号,下载不成功;有些m4a格式的也下载不成功;文件大下载的慢;…

零代码编程:用ChatGPT批量下载播客音频文件

国外有很多优质的播客podcast资源,且都是可以免费下载的。 比如,我们想下载ChatGPT相关的播客。可以先打开播客搜索网站:https://podnews.net/ 在搜索框里面输入:ChatGPT,上面是stories,往下拉一下&#x…

流量玩家必看,微信问一问轻松获取200+引流秘籍

最近,微信推出了全新的“问一问”功能,为流量玩家带来了巨大的流量红利。这一新的流量入口势必成为流量玩家们追逐的热门目标。 “问一问”可以被视为一个问答型平台,可以简单理解为“微信版的知乎”。熟悉在知乎上进行问答引流的人都知道&am…

DNSPod十问林洪祥:顶级带货主播,其实是数字人?

本期嘉宾 林洪祥 风平智能CEO 林洪祥,风平智能CEO。风平智能拥有全球领先的数字人AIGC预训练大模型技术,利用数字人AI知识大模型打造视频版ChatGPT,实现数字人名师、数字人医生、数字人保险客服、数字广告模特、数字人AI直播等,…

chatgpt赋能python:Python机器学习手册

Python机器学习手册 介绍 Python机器学习手册提供了从数据预处理到深度学习的全面指南。本手册适合有一定Python编程经验的工程师和数据科学家。 数据预处理 数据预处理是机器学习流程的重要一步,包括数据清洗、特征选择和数据转换等。Python提供了很多数据预处…

机器学习复习(下)

严正声明:本文的答案是ChatGPT的回答,仅供参考,不代表就是正确答案!!! 9.什么是泛化误差和经验误差,是不是越小越好?为什么? 泛化误差:在“未来”样本上的误差 经验误差&#xff…

【回答问题】ChatGPT上线了!请使用C++语言写一个谷歌 LaMDA模型?

【回答问题】ChatGPT上线了!请使用C++语言写一个谷歌 LaMDA模型? 很高兴为您服务!您可以使用以下 C 语言代码来实现 Google LaMDA 模型: 复制 #include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX