`

javascript and printer

 
阅读更多

1. 直接调用 window.print();

 

 

2 . 可以只打印部分页面 (个人最喜欢)

页面内容 :

<html>
...
<body>

    <!-- some content -->

    <!--startprint-->
        print context
    <!--endprint-->

    <!-- some content -->

</body>
</html>

 

javascript代码 :

<script type="text/javascript">
function printView(){
    bdhtml=window.document.body.innerHTML;
    sprnstr="<!--startprint-->"; // 这里要和页面标记完全统一
    eprnstr="<!--endprint-->"; // 同上...
    prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
    prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
    window.document.body.innerHTML=prnhtml;
    window.print();
    window.document.body.innerHTML=bdhtml;
}

</script>

 

 

 

3. IEWebBrowser组件 :

<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>  
   1. <input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开>
   2. <input name=Button onClick=document.all.WebBrowser.ExecWB(2,1) type=button value=关闭所有>
   3. <input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为>  
   4. <input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印>
   5. <input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印>
   6. <input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览>
   7. <input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置>
   8. <input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性>
9. <input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选>
10. <input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新>
11. <input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭>

 

 

4. 使用ScriptX.cab控件

1.下载ScriptX.cab控件

官网http://www.meadroid.com/scriptx/index.asp

2.使用object元素,修改codebase,classid的值

这里调用控件ScriptX.cab
Java代码 复制代码

<OBJECT id="factory" style="DISPLAY: none" codeBase="${rootUrl}js/smsx.cab#VVersion=6,3,435,20" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext></OBJECT>

这段代码用来加载cab文件,clsid和codebase必须要和你下载的cab中的信息对应,否则组件会加载错误,这两项其实不难找,只要你用winrar打开你下载的cab文件,然后找到扩展名是.inf的文件,然后打开之,就能看到了。

3.调用控件脚本

Print.js文件
Java代码 复制代码

  1. function setPrintBase(headerText,footerText,rootUrl) {
   2.  
   3.     // -- advanced features ,未曾使用过,有待确认。
   4.  
   5.         //factory.printing.SetMarginMeasure(2); // measure margins in inches
   6.  
   7.         //factory.SetPageRange(false, 1, 3);// need pages from 1 to 3
   8.  
   9.         //factory.printing.printer = "HP DeskJet 870C";
10.  
11.         //factory.printing.copies = 2;
12.  
13.         //factory.printing.collate = true;
14.  
15.         //factory.printing.paperSize = "A4";
16.  
17.         //factory.printing.paperSource = "Manual feed"
18.  
19.     var header = (headerText==null||headerText=="")?'默认页眉':headerText;
20.  
21.     var footer = (footerText==null||footerText=="")?'默认页角':footerText;
22.  
23.   factory.printing.header = "&b"+header+"&b" ;
24.  
25.   factory.printing.footer = "&b"+footer;
26.  
27.   factory.printing.portrait = true;
28.  
29.   factory.printing.leftMargin =10.00;
30.  
31.   factory.printing.topMargin =10.00;
32.  
33.   factory.printing.rightMargin =10.00;
34.  
35.   factory.printing.bottomMargin =10.00;
36.  
37. } 

 

 测试代码 :

 

<%@ page contentType="text/html;charset=GBK"%>

<html>
<head>
<meta http-equiv="imagetoolbar" content="no">
<script language="javascript" src="print.js"></script>
<style media="print">
.Noprint   {DISPLAY:   none;}
</style>
<title>打印测试</title>
</head>
<OBJECT id="factory" style="DISPLAY: none" codeBase="smsx.cab#VVersion=6,3,435,20" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext></OBJECT>

<script defer>
function window.onload() {  
setPrintBase('页眉','页脚');
}
</script>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
<center class="Noprint">
<input type=button value="打印" onclick="factory.printing.Print(true)">
<input type=button value="页面设置" onclick="factory.printing.PageSetup()">
<input type=button value="打印预览" onclick="factory.printing.Preview()">          
<input type="button" value="关闭" onclick="window.close();">
</center>
   <center>
      <table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr><td align="center"><b>内容</b></td></tr>
       </table>
    </center>
</body>
</html>

 

 

 

分享到:
评论

相关推荐

    json解析与生成

    JSON格式通常用于服务器向客户端发送数据,例如在AJAX(Asynchronous JavaScript and XML)请求中,实际使用的并不是XML,而是JSON,因为JSON解析和生成的速度更快,且数据体积更小。 **JSON的基本结构:** 1. 对象...

    phpmaker610官方安装版

    Server-side validation and/or client-side JavaScript validation Optional search features (Quick, Extended Quick and Advanced) with search result highlight Optional User ID and User Level Advanced ...

    WebToPDF.NET v2.0.16.0

    .NET component / class library that converts HTML to PDF. The converter fully supports HTML 4.01, XHTML 1.0, XHTML 1.1 and CSS 2.1 including page breaks, forms, links and JavaScript execution....

    python3.6.5参考手册 chm

    The json module: JavaScript Object Notation The plistlib module: A Property-List Parser ctypes Enhancements Improved SSL Support Deprecations and Removals Build and C API Changes Port-Specific ...

    用户名唯一

    Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下更新部分网页内容。 ###...

    igniculus:SQL语法荧光笔和记录器。 未经修饰和可定制

    igniculus ( 'SELECT [port] AS Printer, \'on fire\' AS Status ' + 'FROM [Printers] P ' + 'WHERE P."online" = 1 AND P."check" = 1' ) ; 目录 例子 一体化续集 记录仪 初始化时返回对log函数的引用,但可以...

    js使用小技巧

    Javascript小技巧一箩筐 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode ...

    2021-2022计算机二级等级考试试题及答案No.13372.docx

    - 打印机按照印字的工作原理可以分为**击打式打印机**(Impact Printer)和**非击打式打印机**(Non-Impact Printer)。击打式打印机通过物理接触打印字符,而非击打式打印机则是利用激光、喷墨等方式。 #### 22. ...

    adarshaacharya.com.np:使用@gatsbyjs建立个人网站和博客

    :hammer_and_wrench: 安装与设置 安装Gatsby CLI npm install -g gatsby-cli 使用安装并使用正确版本的Node nvm install 安装依赖项 yarn install 启动开发服务器 gatsby develop :rocket: 建立并运行以进行...

    计算机、电脑常用专业英文

    浏览器是一种用于浏览互联网资源的软件,支持HTML、CSS、JavaScript等标准。 #### Bus line 总线是连接计算机内部各部件的通道,用于数据和指令的传输。 #### Backup tape cartridge units 备份磁带盒单元是一种...

    计算机专业英语词汇

    Chain Printer 链式打印机** 链式打印机是一种早期的打印机类型,它通过旋转链条上的字符模板来打印文字。 **37. Character and Recognition Device 字符标识识别设备** 字符标识识别设备是一种能够识别和解读印刷...

Global site tag (gtag.js) - Google Analytics