关于打印

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于打印相关的知识,希望对你有一定的参考价值。

要实现网页打印其实很简单,一个window.print(); 就可以了。 但是往往需求中要求我们打印的不是整个页面,而是部分有用的东西。而window.print();只能打印整个页面。这时就需要分区域的打印。目前发现有以下几种方法。先记成笔记,万一以后忘记了可以再来查阅。

1、CSS控制在打印时不需要打印的部分隐藏起来

  (1) bootstrap中的hidden-print可以在打印时将不需要显示的部分隐藏起来。在那一部分的最外层dom元素中加上 class="hidden-print" 即可。

  (2) 

@media print {
    .notPrint{ display: none; }  
}

  用@media print将需要隐藏部分display: none; 也可以。此方法还可以修改打印时的样式。

2、JS拼接字符串的方法将需要打印的地方拼接起来。以下是前段时间项目中打印的代码:

var whtml=document.body.innerHTML; //先将页面dom保存起来 
var printData=$(‘#CC-orderDetial‘).html(); //构造需要打印部分
document.body.innerHTML = printData;  /将需要打印部分赋值给当前页面
window.print();  //打印
document.body.innerHTML=wHtml;  //还原原来的页面
document.location.reload();
return false; 

以上几种方法虽然可以实现部分打印,但还隐藏着一个小bug。如果需要打印部分有<a href="www.aaa.com">XXX</a>, 你在chrome打印预览的时候会发现href中的内容也会被打印出来。把href="www.aaa.com" 替换成空格即可。bbb.replace(/href=/g,"");

以上是关于关于打印的主要内容,如果未能解决你的问题,请参考以下文章

关于代码片段的时间复杂度

关于片段生命周期

关于js----------------分享前端开发常用代码片段

关于在各浏览器中插入音频文件的html代码片段

JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

webstorm代码片段的创建