2017年08月18日网页开发过程中会有打印页面的需求

优采云 发布时间: 2021-05-03 22:11

  

2017年08月18日网页开发过程中会有打印页面的需求

  JS实现页面打印(全部,部分)

  更新时间:2017年8月18日10:08:16作者:Xiaoguoguo_G

  本文文章主要介绍JS实现页面打印(全部,部分),我认为它相当不错,现在与您分享,也供您参考。让我们跟随编辑器看看

  在Web开发过程中,我们经常需要打印页面。有很多方法可以通过JS实现。我在这里整理了一下,供您参考。

  方法1:window.print()

  整体打印

  

打印

  现在可以轻松打印页面,但是此方法将打印整个页面。如果要打印指定区域,则需要通过以下设置

  部分打印

  首先,在html中,用星号和结尾标记打印区域

  

这块内容不需要打印

这里是需要打印的内容

.....

这块内容不需要打印

  然后,将以下代码添加到click事件中

  

function doPrint() {

bdhtml=window.document.body.innerHTML;

sprnstr="";

eprnstr="";

prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);

prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));

window.document.body.innerHTML=prnhtml;

window.print();

}

  过滤打印区域的内容

  例如

  

预览

打印

这里是需要打印的内容

.....

  上面的预览和打印按钮不想打印,如果要过滤,可以进行以下样式设置

  

@media print {

.noprint{

display: none;

}

}

  或

  

.noprint{

display: none;

}

  选择两种书写方式之一

  分页打印

  使用window.print()打印时,如果内容超出限制,它将自动分页。但是,如果需要自定义分页范围,例如表格的页面打印,则可以设置以下内容:

  方法二、 jqprint()

  jqprint是一个用于基于jQuery的页面打印的小插件,但是我不得不承认这个插件确实功能强大。在最近的项目中,我提供了很多帮助。在Web打印方面,前端打印基本上取决于窗口。 .print()方法进行打印,并在此基础上对该插件进行进一步封装,从而可以轻松地在网页上打印某个区域,这是一个亮点。

  参考网址:

  请注意!许多朋友遇到无法读取未定义错误的属性“ opera”。问题是juqery版本兼容性问题。

  解决方案:添加迁移辅助插件jquery-migrate- 1. 0. 0. js解决版本问题

  简介

  js

  

function a(){

$("#ddd").jqprint();

}

  html

  

test

test

test

test

test

  设置模板打印

  

$("#printContainer").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

});

  后记

  此外,您还可以使用html标签来引入Webbrowser控件(仅与IE兼容)或调用Windows的底层以进行打印,并报告安全警告。不建议使用(不支持部分打印)

  我在这里只介绍两种方法。我希望它对每个人的学习都有帮助,也希望您能更多地支持Scripthome。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线