`
yaoweinan
  • 浏览: 137565 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

js打印

    博客分类:
  • js
阅读更多
一.用JS自带函数打印

直接调用
Java代码 复制代码

   1. <a href="javascript:window.print();">打印</a>

<a href="javascript:window.print();">打印</a>



二.IEWebBrowser组件

介绍

http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3BQ267240#top
http://support.microsoft.com/kb/q247671/#appliesto

Java代码 复制代码

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

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



三.使用ScriptX.cab控件

1.下载ScriptX.cab控件

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

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

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

   1. <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>

<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. }

function setPrintBase(headerText,footerText,rootUrl) {

    // -- 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"

    var header = (headerText==null||headerText=="")?'默认页眉':headerText;

    var footer = (footerText==null||footerText=="")?'默认页角':footerText;

factory.printing.header = "&b"+header+"&b" ;

factory.printing.footer = "&b"+footer;

factory.printing.portrait = true;

factory.printing.leftMargin =10.00;

factory.printing.topMargin =10.00;

factory.printing.rightMargin =10.00;

factory.printing.bottomMargin =10.00;

}




例子
Java代码 复制代码

   1. <%@ page contentType="text/html;charset=GBK"%>
   2.  
   3. <html>
   4. <head>
   5. <meta http-equiv="imagetoolbar" content="no">
   6. <script language="javascript" src="print.js"></script>
   7. <style media="print">
   8. .Noprint   {DISPLAY:   none;}
   9. </style>
10. <title>打印测试</title>
11. </head>
12. <OBJECT id="factory" style="DISPLAY: none" codeBase="smsx.cab#VVersion=6,3,435,20" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext></OBJECT>
13.  
14. <script defer>
15. function window.onload() {    
16. setPrintBase('页眉','页脚');
17. }
18. </script>
19. <body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
20. <center class="Noprint">
21. <input type=button value="打印" onclick="factory.printing.Print(true)">  
22. <input type=button value="页面设置" onclick="factory.printing.PageSetup()">  
23. <input type=button value="打印预览" onclick="factory.printing.Preview()">            
24. <input type="button" value="关闭" onclick="window.close();">
25. </center>
26.    <center>
27.       <table width="100%" border="0" cellpadding="0" cellspacing="0">
28.           <tr><td align="center"><b>内容</b></td></tr>
29.        </table>
30.     </center>
31. </body>
32. </html>

<%@ 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>



四.对比

1.Window.print调用方便,但功能简单

2.功能更强大,但使用IEWebBrowser有时会报JS没有权限的错误。

3.ScriptX控件功能也比较强大,目前在使用这种方式。

这里的也不错啊,有打印到 word的和excel

http://hi.baidu.com/afei0211/blog/item/20523955ca8bebc2b745ae98.html

http://hi.baidu.com/hongz1125/blog/item/0152bcfd84ce1e1008244d5c.html

分享到:
评论

相关推荐

    原生JS打印插件之jQuery.EasyPrint.js使用文档

    javascript打印大全;通用;js实现打印的方式;JS怎么实现页面打印呢?JavaScript 实现打印,打印预览,打印设置;JS打印和报表输出;原生js打印插件Print.js;js控制分页打印、打印分页示例;js 打印插件;js使用...

    用Javascript打印网页指定标签的内容

    用Javascript打印网页指定标签的内容 用Javascript打印网页指定标签的内容是指在网页上选择指定的标签,然后将其内容导出到另一个页面上,最后进行打印的操作。这种方法可以灵活地控制打印的内容和格式。下面将详细...

    通过调用 JS 打印图片信息

    "通过调用 JS 打印图片信息"这个主题就是针对这一需求展开的。本文将深入探讨如何利用 JavaScript 实现这一功能,特别是在解决谷歌浏览器首次打印时图片不显示及去除IE浏览器页眉页脚的问题。 首先,我们需要理解为...

    javascript,js打印

    在JavaScript(JS)中,打印功能是通过与浏览器的交互来实现的,允许用户将网页内容或者特定元素发送到打印机。这个过程涉及到一系列的技术和方法,包括DOM操作、CSS样式控制以及利用JavaScript库如jQuery来简化操作...

    Js打印功能,支持局部打印

    "Js打印功能,支持局部打印"这一主题,主要涉及的是JavaScript在网页中实现打印的功能,特别是如何实现对特定区域(局部)的打印。 JavaScript是一种广泛用于网页开发的脚本语言,它可以直接在用户的浏览器上运行,...

    JS打印报表控件

    "JS打印报表控件"是专门为JavaScript设计的一种工具,它允许开发者在Web应用中实现报表的打印功能,包括分页打印和打印预览,从而提供更丰富的用户体验。 在Web开发中,打印功能通常是必不可少的,尤其是对于那些...

    js 打印以及预览功能实现

    在JavaScript(js)中实现打印和预览功能是一项常见的需求,尤其在Web开发中。本文将详细介绍如何基于JavaScript实现这一功能,并确保其在IE、Firefox和Google等主流浏览器中的兼容性。 首先,我们需要理解...

    工具-打印:js打印插件

    "工具-打印:js打印插件"的标题暗示了我们将在讨论如何利用JavaScript来创建或集成一个打印插件,以便用户能够方便地打印网页中的特定部分,同时确保该功能在不同的浏览器环境下具有良好的兼容性。 **JS打印插件的...

    js 打印控件

    “lodop47”可能是一个名为LODOP的JavaScript打印服务程序的版本,它是一个跨浏览器的打印解决方案。LODOP通过在客户端提供一个对象,使得开发者可以调用一系列方法来控制打印过程,如设置页面布局、选择打印机、...

    javascript打印如何自定义纸张大小(代码)[借鉴].pdf

    JavaScript 打印自定义纸张大小 本文档讨论了使用 JavaScript 实现自定义纸张大小的打印方法,并解决了页脚、页眉、横向和纵向的问题。同时,本文还介绍了使用 IE 的 WebBrowser控件来实现打印预览和设置打印纸张...

    js 打印插件

    JavaScript打印插件是一种用于网页打印和预览的技术,它基于JavaScript语言,允许用户在不离开当前页面的情况下进行打印操作。这种技术广泛应用于各种浏览器环境中,包括IE、Firefox和Chrome等主流浏览器,为用户...

    js打印WEB页面与打印预览

    JS打印WEB页面与打印预览是指在WEB页面中使用JavaScript语言来实现页面的打印和预览功能。以下是实现这个功能的三种方法: 第一种方法:使用CSS隐藏不打印内容 在这个方法中,我们可以使用CSS来隐藏不需要打印的...

    js打印实现各个浏览器预览插件

    总结来说,实现跨浏览器的JS打印预览功能,需要考虑不同浏览器的特性,如IE的ActiveXObject,以及利用jQuery插件来提供统一的用户体验。`jquery-print-preview-plugin`这类插件简化了这一过程,提供了丰富的定制选项...

    js打印excel文档,打印table

    总结来说,使用JavaScript打印HTML中的table并将其导出为Excel文档,需要结合jQuery、printArea插件以及可能的FileSaver.js库。通过DOM操作获取表格数据,转换成CSV格式,再创建并保存为Excel文件。这种方法在前端...

    js打印设置页边距

    在JavaScript中实现对打印页面的定制化设置,如页边距、页眉和页脚的配置,是一项进阶技能,尤其对于需要精确控制打印输出的Web应用而言至关重要。本文将深入探讨如何使用JavaScript来调整打印时的页边距,设置或...

    JS打印页面代码JS打印页面代码

    JS打印页面代码JS打印页面代码JS打印页面代码JS打印页面代码JS打印页面代码JS打印页面代码JS打印页面代码

    JS打印的几种实现方法

    JavaScript打印功能需要注意不同浏览器之间的差异,确保在所有主流浏览器(如Chrome、Firefox、Safari、IE/Edge)下都能正常工作。 9. **性能优化**: 在大量数据或者复杂页面结构的情况下,优化打印性能,比如...

    js打印文件,一个WEB打印的JS脚本

    一个WEB打印的JS脚本,支持WEB程序开发,可实现WEB页面直接打印。

    Lodpo6.0js打印组件

    Lodop6.0js打印组件是一款高效且功能丰富的JavaScript打印解决方案,专为网页开发者设计,以满足在浏览器环境中进行多样化的打印需求。这个组件能够帮助开发者轻松地实现在网页上进行打印预览、局部打印以及自定义...

    好用的JS打印指定区域

    "好用的JS打印指定区域"这个主题聚焦于如何利用jQuery库来高效地实现网页特定部分的打印功能。jQuery,作为一个广泛使用的JavaScript库,提供了简洁的API,使得开发者可以更加便捷地操作DOM元素,包括对页面区域的...

Global site tag (gtag.js) - Google Analytics