网页局部打印

JavaScript016

网页局部打印,第1张

打印网页中定义的部分内容的实现方法正常情况下的打印是使用 window.print()直接整页打印,但如果需要打印网页中定义的部分内容,则可使用如下的方法:

这个插件是我在项目中多次使用的插件,插件主要功能是打印当前页面(当前页面,非当前屏幕)

链接: https://pan.baidu.com/s/1nQQX8ov1YJWkSXUnQy-_sA 密码:akpq

使用方式

1.引用文件中的两个js

这里jquery版本只有1.4.4,所以建议将打印的页面和后台其他页面分开,避免发生冲突

2.定义function

3.html

注意点:需使用低版本jq,高版本不兼容.

1、js实现(可实现局部打印)

[html] view plain copy

<input id="btnPrint" type="button" value="打印" onclick="javascript:window.print()" />

<input id="btnPrint" type="button" value="打印预览" onclick=preview(1) />

<style type="text/css" media=print>

.noprint{display : none }

</style>

<p class="noprint">不需要打印的地方</p>

<script>

function preview(oper)

{

if (oper <10)

{

bdhtml=window.document.body.innerHTML//获取当前页的html代码

sprnstr="<!--startprint"+oper+"-->"//设置打印开始区域

eprnstr="<!--endprint"+oper+"-->"//设置打印结束区域

prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18)//从开始代码向后取html

prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr))//从结束代码向前取html

window.document.body.innerHTML=prnhtml

window.print()

window.document.body.innerHTML=bdhtml

} else {

window.print()

}

}

</script>

<p>XXXXX</p>

<!--startprint1-->要打印的内容<!--endprint1-->

再加个打印按纽 onclick=preview(1)

2、调用windows底层打印,报安全警告,不建议使用(不支持局部打印)

[html] view plain copy

<HTML>

<HEAD>

<TITLE>javascript打印-打印页面设置-打印预览代码</TITLE>

<META http-equiv=Content-Type content="text/htmlcharset=gb2312" />

<SCRIPT language=javascript>

function printsetup(){

// 打印页面设置

wb.execwb(8,1)

}

function printpreview(){

// 打印页面预览

wb.execwb(7,1)

}

function printit()

{

if (confirm('确定打印吗?')) {

wb.execwb(6,6)

}

}

</SCRIPT>

</HEAD>

<BODY>

<DIV align=center>

<OBJECT id=wb height=0 width=0

classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 name=wb></OBJECT>

<INPUT onclick=javascript:printit() type=button value=打印 name=button_print />

<INPUT onclick=javascript:printsetup()type=button value=打印页面设置 name=button_setup />

<INPUT onclick=javascript:printpreview()type=button value=打印预览 name=button_show />

一按开始的减肥了卡时间段

</DIV>

</BODY>

</HTML>

3、jQuery实现(支持局部打印)

[html] view plain copy

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="jquery.PrintArea.js"></script>

<script>

$(document).ready(function(){

$("input#biuuu_button").click(function(){

$("div#myPrintArea").printArea()

})

})

</script>

<input id="biuuu_button" type="button" value="打印"></input>

<div id="myPrintArea">.....文本打印部分.....</div>

这个是浏览器设置的问题,和js无关。

通常,css是作用于显示器的,但是也可以通过修改media:printer使css仅对打印机生效,局部打印就是针对打印机将打印区域以外的内容统统设为display:none,这样打印机就“看不见”它们了,从而实现局部打印。

已firefox为例,你可以自行调整页面打印设置。