jqprint打印的简单使用

jqprint打印的简单使用最近做了一个项目 里面需要打印 Echarts 和部分介绍文字 看了网上很多例子 都写得不错 文字打印都没问题 但碰到 Echarts 就各种失效 好不容易找到原因 可以打印了 确发现只能打印一页 好气啊 不过最终还是找到了方法 所以今天就来分享下我的爬坑之路 首先和网上的步骤一样 引下所需要的 js 文件

<script language="javascript" src="jquery-1.4.4.min.js"></script> <script language="javascript" src="jquery.jqprint-0.3.js"></script> 

当然,如果你的jq是2.0版本以上的会报一个错误:

Cannot read property 'opera' of undefined 

所以这时候你需要再引一个js文件解决一下这个错误:

<script src="http://www.jq22.com/jquery/jquery-migrate-1.2.1.min.js"></script> 
<div id="jqprint">中间就是你需要打印的内容</div> 

然后你需要定义函数:

function jqprint() { $("#jqprint").jqprint(); } 

最后就是调用下这个函数了:

<button onclick="jqprint()"></button > 
 <div id=“Echarts”>>这里是你的图表</div> <img id="EchartsImg" >这里是转换后的图片 
 var Echarts= echarts.init(document.getElementById('Echarts')); var EchartsOption = {} Echarts.setOption(EchartsOption ); 

转换图片的代码:

 var EchartsImg= document.getElementById('EchartsImg'); setTimeout(function(){ EchartsImg.src = Echarts.getDataURL({ pixelRatio: 2, }); },1000) 

这样就可以将Echarts图表转换成图片了,不过页面存在个img也不是事,所以你需要将img先隐藏掉:

#EchartsImg{ display:none } 
function jqprint() { setTimeout(function() { $(".EchartsImg").show(); $(".Echarts").hide(); $("#jqprint").jqprint(); }, 1000) setTimeout(function() { $(".EchartsImg").hide(); $(".Echarts").show(); },2000) } 

这里写了个延迟,因为有时候图表加载过慢就导致打印残缺,所以上边的一些地方我都加了个延迟,这个可以根据项目而定,如果不加也没问题,也可以选择不加。

好了,上边配置也差不多了,但是你打印以后发现竟然只能打印一页,你说气不气,贼气,最后我也是找了好多方法,最终还是被我试到了,那就是需要自定义一下打印的样式如下:

    @media print {
    	html,
    	body {
    		height: inherit;
    		background: #000929;//自定义背景颜色
    	}
    	#jqprint{
    		height: inherit;
    	}
    }
jqprint({ debug: false, //如果是true则可以显示iframe查看效果(iframe默认高和宽都很小,可以再源码中调大),默认是false importCSS: true, //true表示引进原来的页面的css,默认是true。(如果是true,先会找$("link[media=print]"),若没有会去找 $("link")中的css文件) printContainer: true, //表示如果原来选择的对象必须被纳入打印(注意:设置为false可能会打破你的CSS规则)。 operaSupport: true//表示如果插件也必须支持歌opera浏览器,在这种情况下,它提供了建立一个临时的打印选项卡。默认是true }) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230352.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月3日 下午6:01
下一篇 2026年3月3日 下午6:22


相关推荐

  • python产生随机数-详解用python生成随机数的几种方法[通俗易懂]

    python产生随机数-详解用python生成随机数的几种方法[通俗易懂]今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下。本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间内生成随机数,按照内容将博客分为3部分,并附上代码。1从给定参数的正态分布中生成随机数当考虑从正态分布中生成随机数时,应当首先知道正态分布的均值和方差(标准差),有了这些,就可以调用pytho…

    2022年10月4日
    3
  • 换BLOG了~http://hi.baidu.com/aekdycoin/blog

    换BLOG了~http://hi.baidu.com/aekdycoin/bloghttp://hi.baidu.com/aekdycoin/blog

    2022年7月23日
    16
  • linux smartctl 命令,Linux smartctl命令

    linux smartctl 命令,Linux smartctl命令硬盘的SMART是S.M.A.R.T.的缩写,全称是“Self-Monitoring,AnalysisandReportingTechnology”,中文意思是“自我监测分析与报告技术”,它可以对硬盘的温度、内部电路、盘片表面介质材料等进行监测,力求及时分析出硬盘可能发出的问题,并发出警告,从而保护数据不受损失。在Linux上使用smartctl命令查看硬盘的SMART信息。安装工具:yu…

    2022年6月29日
    32
  • 缺省路由配置

    缺省路由配置实验思路 1 配置主机 IP2 配置路由器接口地址 3 测试直连是否相通 直连相通后再进行下一步 4 配置缺省路由 5 测试 PC1 与 PC2 能否互通 实验步骤 1 根据拓扑图 对两台 PC 做基础 IP 地址配置 2 根据图示 将路由器接口地址配好 配置命令为 在 R1 上 Router config hostnameR1R1 config interfacegig

    2026年3月19日
    2
  • 游戏框架(框架入门篇)

    游戏框架(框架入门篇)游戏框架 游戏框架 发布说明 游戏框架 还是 游戏架构 立钻哥哥还是以 游戏框架 来命名这个主题吧 游戏框架 作为整个游戏的框架 具有核心的地位 一个游戏的层次和后期维护性就取决于游戏框架 游戏框架 当然也是一个探索篇 作为这个分类的第一篇博文 还是先探索一段时间 后期根据需要再推出一个精品博文 gt 立钻哥哥带您学游戏框架 游戏框架 目录

    2026年3月19日
    1
  • 设计模式学习之中介者模式(Mediator,行为型模式)(18)

    设计模式学习之中介者模式(Mediator,行为型模式)(18)

    2021年9月1日
    64

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号