JS打印组合功能

前端技术 2023/09/07 JavaScript

本文为大家分享了JS打印组合功能,功能全面,供大家参考,具体内容如下

1.局部打印--即想打印什么地方就打印什么地方
 解决办法:
 将不想打印的地方隐藏起来
 <style type=\"text/css\" media=print>
.noprint{display : none }
 

分页的时候用 
.PageNext{page-break-after: always;} 
然后给不想打印的页面元素添加: class=\"Noprint\" ,那就不会出现在打印和打印预览中了。
想分页的地方添加:  <div class=\"PageNext\"></div> 就可以了。
</style>
在将不想打印的地方控制起来 
<p class=\"noprint\">不需要打印的地方</p> 

2.引用组建
WebBrowser是IE内置的浏览器控件,无需用户下载. 
WebBrowser控件
<object ID=\'WebBrowser\' WIDTH=0 HEIGHT=0 CLASSID=\'CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\'></object>

关于这个组件的用法,列举如下:
WebBrowser.ExecWB(1,1) 打开
Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1) 保存网页
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印预览
Web.ExecWB(8,1) 打印页面设置
Web.ExecWB(10,1) 查看页面属性
Web.ExecWB(15,1) 好像是撤销,有待确认
Web.ExecWB(17,1) 全选
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 关闭窗体无提示

3.实例

 <head>
<script language=\"javascript\"> 
<style type=\"text/css\" media=print>
.noprint{display : none }
</style>
function printsetup()
{ 
 // 打印页面设置 
   wb.execwb(8,1); 
} 
function printpreview(){ 
// 打印页面预览 
wb.execwb(7,1); 
} 
function printit() 
{ 
  if(confirm(\'确定打印吗?\'))
  { 
    wb.execwb(6,6) 
  } 
} 
</script>
</head> 
<body>
<p class=\"noprint\">
<OBJECT classid=\"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\" height=\"0\" id=\"wb\" name=\"wb\" width=\"0\"></OBJECT> 
<input type=\"button\" name=\"button_print\" value=\"打印\" onclick=\"javascript:printit()\" /> 
<input type=\"button\" name=\"button_setup\" value=\"打印页面设置\" onclick=\"javascript:printsetup();\" /> 
<input type=\"button\" name=\"button_show\" value=\"打印预览\" onclick=\"javascript:printpreview();\" /> 
</p>
</body> 

3.JS 实现简单的页面局部打印

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); //从开始代码向后取htm
 prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html
 window.document.body.innerHTML=prnhtml;
 window.print();
 window.document.body.innerHTML=bdhtml;
} 
else {
    window.print();
   }
}

使用很简单 将页面内要打印的内容加入中间<!--startprint1-->XXXXX<!--endprint1-->
再加个打印按纽 onclick=preview(1)

 4、控制\"纵打\"、 横打”和“页面的边距。
(1)<script defer>

function SetPrintSettings() { 
 // -- advanced features 
 factory.printing.SetMarginMeasure(2) // measure margins in inches 
 factory.SetPageRange(false, 1, 3) // need pages from 1 to 3 
 factory.printing.printer = \"HP DeskJet 870C\" 
 factory.printing.copies = 2 
 factory.printing.collate = true 
 factory.printing.paperSize = \"A4\" 
 factory.printing.paperSource = \"Manual feed\" 

 // -- basic features 
 factory.printing.header = \"This is MeadCo\" 
 factory.printing.footer = \"Advanced Printing by ScriptX\" 
 factory.printing.portrait = false 
 factory.printing.leftMargin = 1.0 
 factory.printing.topMargin = 1.0 
 factory.printing.rightMargin = 1.0 
 factory.printing.bottomMargin = 1.0 
} 
</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); //从开始代码向后取htm
 prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html
 window.document.body.innerHTML=prnhtml;
 window.print();
 window.document.body.innerHTML=bdhtml;
} 
else {
    window.print();
   }
}

使用很简单 将页面内要打印的内容加入中间<!--startprint1-->XXXXX<!--endprint1-->
再加个打印按纽 onclick=preview(1) 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。

本文地址:https://www.stayed.cn/item/18457

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。