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

Javascript Print(*)

阅读更多

1. 实现打印功能
1) ExecWB()
通过脚本程序来调用IE菜单下面的打印命令。实现的代码如下:
<script language="javascript">

  function printsetup(){ // 打印页面设置

  wb.execwb(8,1);

  }

  function printpreview(){ // 打印页面预览

  wb.execwb(7,1);

  }

  function printit() { //打印

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

   wb.execwb(6,1)

   }

  }

</script>

<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=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();">

<input type=button name=button_fh value="关闭" onclick="javascript:window.close();">



这个Object 其实就?IEWebBrowser 设定 Width 和 Height 以后,我们在界面上就看不到控件的形状了,然后,我们就可以使用 这个object 实现我们选纸和预览的功能了。

关于这个组件还有其他的用法,列举如下:

l wb.ExecWB(1,1) 打开

l wb.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口

l wb.ExecWB(4,1) 保存网页

l wb.ExecWB(6,1) 打印

l wb.ExecWB(7,1) 打印预览

l wb.ExecWB(8,1) 打印页面设置

l wb.ExecWB(10,1) 查看页面属性

l wb.ExecWB(15,1) 好像是撤销,有待确认

l wb.ExecWB(17,1) 全选

l wb.ExecWB(22,1) 刷新

l wb.ExecWB(45,1) 关闭窗体无提示

2) document.execCommand()
<a href="#" onclick=document.execCommand("print")>打印</a>

3) window.print()
使用:javascript:window.Print()

Prints the contents of the window.

方法源
Window

实现版本
Navigator 4.0



语法:print()

参数:无

2. 实现套打功能:使用css
要实现去掉触发打印命令的本身按钮,只需要添加以下代码:

<STYLE MEDIA="print">

#btn1 {display: none}

#btn2 {display: none}

#btn3 {display: none}

#btn4 {display: none}

</STYLE>

然后在以上四个按钮中加上id,分别为:btn1、btn2、btn3、btn4。

<input type=button name=button_print value="打印" onclick="javascript:print()" id="btn1">

<input type=button name=button_setup value="页面设置" onclick="javascript:printsetup();" id="btn2">

<input type=button name=button_show value="打印预览" onclick="javascript:printpreview();" id="btn3">

<input type=button name=button_fh value="关闭" onclick="javascript:window.close();" id="btn4">


3. 去掉页眉页脚:使用JavaScript
<script language="JavaScript">

var hkey_root,hkey_path,hkey_key

hkey_root="HKEY_CURRENT_USER"

hkey_path=\\Software\\Microsoft\\Internet Explorer\\PageSetup\\

//设置网页打印的页眉页脚为空

function pagesetup_null(){

try{

var RegWsh = new ActiveXObject("WScript.Shell")

hkey_key="header"

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")

hkey_key="footer"

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")

}catch(e){}

}

//设置网页打印的页眉页脚为默认值

function pagesetup_default(){

try{

var RegWsh = new ActiveXObject("WScript.Shell")

hkey_key="header"

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P")

hkey_key="footer"

RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&u&b&d")

}catch(e){}

}

<Script>

4. 分页问题:使用css
<style type="text/css">

div.pageEnd {page-break-before:always}

</style>

然后在需要强制分页的地方用:

<div class="pageEnd">

待定页的内容

</div>

如果使用的是page-break-before,那么div的内容在后一页,

如果使用的是page-break-after,那么div的内容在前一页

page-break-after:检索或设置对象后出现的页分割符

语法: page-break-after : auto | always | avoid | left | right | null

参数:

l auto :  假如需要在对象之后插入页分割符

l always :  始终在对象之后插入页分割符

l avoid :  避免在对象后面插入页分割符

l left :  在对象后面插入页分割符直到它到达一个空白的左页边

l right :  在对象后面插入页分割符直到它到达一个空白的右页边

l null :  空值。IE5用来取消页分割符设置

示例: p { page-break-after: always;}

page-break-before:检索或设置对象前出现的页分割符

语法: page-break-before : auto | always | avoid | left | right | null

参数:

l auto :  假如需要在对象之前插入页分割符

l always :  始终在对象之前插入页分割符

l avoid :  避免在对象前面插入页分割符

l left :  在对象前面插入页分割符直到它到达一个空白的左页边

l right :  在对象前面插入页分割符直到它到达一个空白的右页边

l null :  空值。IE5用来取消页分割符设置

示例: p { page-break-after: always;}

5. 不弹出打印对话框:设置ExecWB的参数
<object ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">

</object>

<script language="javascript">

function print(){

WebBrowser1.ExecWB(6,1);

}

</script>

然后在页面里加一个按扭:

<input type=button name=print value="print" onclick="print()">

这样做,在按下按扭时会弹出窗口提示,如果不要提示,将第二个参数1改为6。

6、打印分页问题(css中的pagebreak可以控制)

pagebreak:在打印的时候强迫在样式控制的对象前后换页。

before:设置对象前出现的页分割符。设置为always时,始终在对象之前插入页分割符。相对应的css属性是”page-break-before”。

after:设置对象后出现的页分割符。设置为always时,始终在对象之后插入页分割符。相对应的css属性是”>。

用page-break-after
page-break-after版本:css2 兼容性:ie4+ 继承性:无
语法:
page-break-after : auto | always | avoid | left | right | null
取值:
auto :   假如需要在对象之后插入页分割符
always :   始终在对象之后插入页分割符
avoid :   未支持。避免在对象后面插入页分割符
left :   未支持。在对象后面插入页分割符直到它到达一个空白的左页边
right :   未支持。在对象后面插入页分割符直到它到达一个空白的右页边
null :   空白字符串。取消页分割符设置

说明:
检索或设置对象后出现的页分割符。
此属性在打印文档时发生作用。此属性不作用于 br 或 hr 对象。
假如在浏览器已显示的对象上此属性和 page-break-before 属性的值之间发生冲突,则导致最大数目分页的值被使用。
页分隔符不允许出现在定位对象内部。
在ie6及之前版本浏览器中, left 和 right 值的作用结果等同于 always 。
此属性对于 currentstyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 pagebreakafter 。
示例:
p { page-break-after: always;}

分享到:
评论
1 楼 blackangel_can 2008-09-11  
这样的代码见得多了。

相关推荐

    firefox下,javascript的print_r实现

    firefox下,javascript的print_r实现,原创

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

    调用浏览器自带打印功能,使用JavaScript的 window.print(); 方法。 使用JS实现打印功能;JavaScript 实现打印操作;javascript打印大全;通用;js实现打印的方式;JS怎么实现页面打印呢?JavaScript 实现打印,打印...

    javascript-print_r-tree:可折叠的 print_r 输出

    Javascript print_r 美化器。 ============================== 将 PHP print_r 函数的标量字符串输出转换为可折叠的 DOM 结构。 演示: : 对于 PHP 代码,您可以使用print_rc ( print_rc.php ) 函数而不是print...

    javascript实现window.print()去除页眉页脚

    打印时去除页眉页页脚 打印前加入下面代码即可 var HKEY_Root,HKEY_Path,HKEY_Key; 代码如下: HKEY_Root=”HKEY_CURRENT_USER”; HKEY_Path=”\\Software\\Microsoft\\Internet Explorer\\PageSetup\\”;...

    python3让print输出不换行的方法

    python 3.x版本print输出不换行的格式如下: print(x, end=) 其中,end=”” 可使输出不换行,不能省略。 举例: 输出结果: 内容扩展: python3.x中如何实现print不换行 大家应该知道python中print之后是默认...

    Print.js:一个小巧JavaScript库,可帮助您从网络进行打印

    一个小的javascript库,可帮助您从网络上打印。 有关文档和示例,请访问: 安装 您可以从下载最新版本的Print.js,或使用文档页面上可用的 。 通过npm安装: npm install print-js --save 通过纱线安装: ...

    JavaScript.Application.Design.A.Build.First.Approach

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Book The fate of most applications is often sealed before a single line of code...

    v8-print-code-highlighter:用于 --print-code V8 转储的双 JavaScript + ASM 语法荧光笔

    将源代码部分高亮显示为 JavaScript,将代码部分高亮显示为 ASM。 例子 $ d8 --print-code samples/source.js |v8-print-code-highlighter |bcat 但是请预先警告,这些日志可能很大。 您可以为此使用 ,并且假设您...

    Print11.js

    js打印pdf全局变量window.print('dom节点') 用于JavaScript打印文件 不失去样式,通过兼容来输出文件 方便大伙使用 自己修改了一下 可以正常使用 谢谢

    Third-Party JavaScript

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Authors Ben Vinegar is an engineer at Disqus, a third-party JavaScript ...

    javascript仿php的print_r函数输出json数据

    代码如下: //theOb(json数据) function print_r(theObj) { var retStr = ”; if (typeof theObj == ‘object’) { retStr += ‘’; for (var p in theObj) { if (typeof theObj[p] == ‘object’) { retStr += ...

    用js模拟PHP的print_r功能

    NULL 博文链接:https://muyu.iteye.com/blog/513486

    MongoDB的JavaScript驱动Narwhal.zip

    colls.forEach(function(el) { print(el); }); var coll = db.getCollection("testCollection"); coll.drop(); var doc = { "name" : "MongoDB", "type" : "database", "count" : 1, "info" : { x : 203, y ...

    html和js通过window.print()实现调用浏览器打印带背景图片和生成二维码的文件功能

    html和js通过window.print()实现调用浏览器打印带背景图片和生成二维码的文件功能;直接下载可用

    【JavaScript源代码】vue实现页面打印自动分页的两种方法.docx

    vue实现页面打印自动分页的两种方法  本文实例为大家分享了vue实现页面打印自动分页的具体...(this instanceof Print)) return new Print(dom, options); this.options = this.extend({ 'noPrint': '.no-print' 

    jQuery.print实现jqprint打印程序

    jQuery.print实现jqprint打印程序:HTML5+CSS3+JavaScript+Jquery实现浏览器打印程序。

    JavaScript内核系列

    Javascript取得成功了之后,确实为页面注入了活力,微软也紧接着开发自己的浏览器脚本语言,一个是基于BASIC语言的 VBScript,另一个是跟Javascript非常类似的Jscript,但是由于Javascript已经深入人心,所以在随后...

    printHtml.zip

    &lt;script type="text/javascript" src="./jquery/1.9.1/jquery.min.js"&gt; &lt;!-- &lt;script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"&gt;&lt;/script&gt; --&gt; &lt;!-- jq不同版本都可以 --&gt; function local_print(){ ...

    javascript函数的解释

    79.JS中的打印:window.print() 80.JS中的提示输入框:window.prompt("message","defaultReply"); 81.JS中的窗口滚动条:window.scroll(x,y) 82.JS中的窗口滚动到位置:window.scrollby 83.JS中设置时间间隔:setInterval...

Global site tag (gtag.js) - Google Analytics