打印jQuery.print.min.js 使用总结

项目中遇到打印报表的要求,需要只打印报表部分而不是整个页面,一般直接调用系统的方法window.print(),会打印整个页面,发现jQuery.print.min.js 很好用,下面和大家分享下打印制作过程成中遇到的问题和解决方法。

使用方法

1.引入jquery 和 jQuery.print.min.js
2.调用(如下)

    //打印
    $("打印按钮").on('click',function () {
            $("需要打印展示的元素").print({
                globalStyles:false,
                mediaPrint:true,
                iframe:false,
                stylesheet:'../commons/css/printBicycle.css' 
            })

    })
参数默认值描述
globalStylestrue是否使用父文档的样式表
mediaPrintfalse是否使用含有media=”print”的样式表
stylesheetnull链接外部样式表
noPrintSelector“.no-prin”非打印内容选择器
iframetrue是否使用一个隐藏的iframe来进行打印,也赋值一个已有的iframe的选择器
appendnull后置打印的自定义html
prependnull前置打印的自定义html
manuallyCopyFormValuestrue打印时是否更新的表单数据
deferred$.Deferred()在window.print()调用后resolve一个jQuery.Deferred对象
timeout750从iframe或者新窗口加载打印数据的超时时间

打印的样式

引入方式:

1.使用link标签就像通常在html页面中引入样式表一样,不过附加一个额外的media属性,如下面这样:

<link rel="stylesheet" href="print.css" media="print" />

2.使用@media规则可以在通用的样式表中,使用@media规则指定样式用于打印,比如这样:

@media print {
  selector{
  ...
  }
}

3.使用@import

@import url(print-style.css) print;

个人项目中使用的插件调用的方式(使用如下),由于项目采用了easyui的tab切签,即使引入了不同的样式表,打开多个切签后,打印样式会互相影响;采用插件自带的引入外部样式的属性,能避免这个问题。

stylesheet:'../commons/css/printBicycle.css' 

打印css的控制(以下样式变更只能改变打印的默认值,排除客户自行调整的情况)

纵向

@page { size: portrait; }

横向

@page { size: landscape; }

去掉页眉页脚

@page {
    size: A4 landscape;  /*A4纸,横向打印*/
    margin: 0;/*去掉页边距*/
}

遇到的问题

  1. 问题:插件中iframe默认的属性是true,意思是在当前窗口打开打印功能,这样的话打印的报表页眉的标题为文档的<title></title>里面的内容,页脚会有当前网址,客户不喜欢。
    解决方式:调用时 iframe:true,这样的话点击打印会新开个窗口(没有标题,没有网址),就能去掉页眉页脚中不喜欢的标题和网址。
  1. 问题:当遇到数据量较大的情况,浏览器会自动切割,分成多个页面,当去掉页眉页脚时,由于打印机的边距问题,会造成边框周围的数据没打印上。
    解决方法: 增加上下的页边距 @page {margin: 50px 0;}
  1. 问题:打印的报表内容超出纸张大小
    解决方式: 添加缩放zoom(个人比较喜欢这种缩放,看起来比较锐利,字体不会缩小,ps:同时能解决浏览器切割后,造成的描边错位情况);使用如下
  <!--html部分需要给打印的部分加个父元素-->
<div class='需要打印的元素'>
  <table>
    //.....  
  </table>
</div>
.需要打印的元素{zoom:.4}


 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jquery.print.min.js是一个基于jQuery开发的打印插件。它提供了简单易用的方式来实现网页打印功能。该插件通过在网页中添加一个打印按钮,使得用户可以通过点击按钮来调用浏览器的打印功能。同时,该插件还支持自定义打印内容,用户可以选择需要打印的部分或整个网页进行打印使用jquery.print.min.js插件非常简单,只需在网页中引入该插件的JavaScript文件,并调用相应的方法即可。该插件提供了两个主要的方法,分别是printprintHtml。print方法用于调用浏览器的打印功能,而printHtml方法则用于自定义打印内容。 使用print方法时,只需在需要添加打印按钮的元素上调用该方法即可,如: ``` $('#print-button').click(function() { $.print(); }); ``` 在这个例子中,当id为print-button的元素被点击时,将调用$.print()方法来触发打印功能。 而使用printHtml方法时,则需要传入需要打印的内容的选择器作为参数,如: ``` $('#print-button').click(function() { $.printHtml('#print-content'); }); ``` 在这个例子中,当id为print-button的元素被点击时,将调用$.printHtml('#print-content')方法来打印id为print-content的元素的内容。 总的来说,jquery.print.min.js是一个方便实用的打印插件,可以简化网页打印功能的开发和使用过程。它不仅提供了调用浏览器打印功能的方法,还支持自定义打印内容,非常适合用于网页中添加打印功能的场景。 ### 回答2: jquery.print.min.js是一个基于jQuery打印插件。它可以让用户在网页上将特定的内容打印出来。 使用这个插件,需要引入jQuery库和jquery.print.min.js文件。然后,通过选择器选择要打印的内容,并调用插件提供的打印方法。 这个插件的主要特点是简单易用。只需加入引用和一行代码,就可以实现网页内容的打印功能。用户可以自定义打印按钮的样式和位置,并可以设置额外的打印参数,比如标题、页眉、页脚等。 这个插件还提供了一些事件,可以在打印开始和完成时执行自定义的逻辑。例如,在打印开始前可以进行一些数据处理操作,而在打印完成后可以进行一些清理操作。 此外,jquery.print.min.js还支持异步打印。用户可以在打印完成前执行一些异步操作,例如发送打印记录到服务器。 总之,jquery.print.min.js是一个功能简单、易于使用打印插件,可以方便地实现网页内容的打印功能。无论是打印整个页面还是选择性地打印部分内容,该插件都能满足用户的需求。 ### 回答3: jquery.print.min.js是一个基于jQuery的插件,用于在Web页面上实现打印功能。它提供了一种简单的方式,让用户能够通过点击按钮或者执行JavaScript函数来打印页面内容。 这个插件的使用非常简单,只需要在页面中引入jquery.print.min.js文件,然后调用相关函数即可。它提供了两个主要函数:printprintThis。 print函数是用于直接打印整个页面内容。当用户点击一个按钮时,可以调用这个函数来实现打印功能。使用该函数时,可以传入一个可选的配置对象,用于设置打印参数,例如打印方向、页边距等。 printThis函数是用于打印指定的DOM元素。可以将需要打印的内容放在一个div或者其他容器中,然后通过调用printThis函数来实现打印。同样可以传入一个配置对象,用于设置打印参数。 使用jquery.print.min.js插件可以简化开发人员实现打印功能的过程,而不需要自行编写复杂的打印逻辑。这个插件还提供了一些其他的功能,例如自定义打印样式、预览打印内容等。 总之,jquery.print.min.js是一个方便易用的插件,可以帮助开发人员在Web页面上实现简单而强大的打印功能。无论是打印整个页面还是部分内容,都可以通过调用相关函数来轻松实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值