zoukankan      html  css  js  c++  java
  • 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> 

    非原创

  • 相关阅读:
    查詢一個表中的所有字段,一个表的结构
    二月份工作總結
    导出excel [原创]
    一个it老总对于新人的一点建议
    命名空间的别名
    mssql 格式化时间 [转]
    开发人员一定要加入收藏夹的网站
    sql 导出/入Excel
    hibernate中hbm文件中inverse功能
    详细展示Asp.net页面的生命周期[转]
  • 原文地址:https://www.cnblogs.com/likeyou/p/2734270.html
Copyright © 2011-2022 走看看