`

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

分享到:
评论

相关推荐

    firefox下,javascript的print_r实现

    在`javascript_print_r`这个压缩包中,可能包含了一个或多个示例文件,用于演示如何在实际项目中使用这个`printR`函数。通过打开这些文件,你可以看到如何将`printR`应用到实际的JavaScript代码中,以帮助调试和理解...

    用js模拟PHP的print_r功能

    在本篇文章中,我们将探讨如何使用JavaScript来模拟PHP的`print_r`功能。 首先,我们需要理解`print_r`的核心功能。它主要包含以下几点: 1. **可读性**:`print_r`会以一种易于理解的格式打印数组或对象的结构。 ...

    Visual C++用HTML和JAVASCRIPT实现打印.rar

    3. **@media print**:在CSS中,`@media print`规则允许定义仅在打印时应用的样式,比如更改颜色方案,去掉背景色,或者调整字体大小以适应纸张。 **在VC++中整合HTML和JavaScript的步骤:** 1. **添加WebBrowser...

    lotus domino BS开发 代理写javascript

    Print "&lt;script language='JavaScript' type='text/javascript'&gt;"; Print "alert('" + msg + "');"; Print "window.location.href='" + doc.Universalid + "?Editdocument';"; Print "&lt;/script&gt;"; End Sub ``` ...

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

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

    简单的js打印控件printsetup

    "简单的js打印控件printsetup"指的是一个使用JavaScript编写的轻量级工具,它允许开发者轻松地集成到自己的网页或应用中,以提供用户友好的打印体验。JavaScript是一种广泛应用于客户端Web开发的脚本语言,它可以对...

    一个好页面打印实例print

    综上所述,"print"实例体现了页面打印的关键要素,包括灵活的打印设置、精确的预览、有效的CSS和JavaScript应用,以及对各种用户环境的兼容性。理解并实现这些技术可以帮助开发者创建出满足用户需求的高质量打印体验...

    javascript 实现页面打印

    &lt;input type=button name=button_print value="打印" onclick="javascript:printit()"&gt; 页面设置" onclick="javascript:printsetup();"&gt; 打印预览" onclick="javascript:printpreview();"&gt; 关闭" onclick=...

    web中打印区域、鼠标拖放、粘贴多图片数据、目录、多文件进行上传

    - **CSS**:可以创建一个专门用于打印的CSS样式表,例如设置`@media print { ... }`规则来定义打印时的样式。例如,可以设置`margin: 1cm;`来指定页边距。 #### 二、鼠标拖放与多文件上传 - **鼠标拖放**:是一种...

    vue-print-nb 兼容低版本浏览器

    Vue.js 是一款流行的前端JavaScript框架,它以其轻量级、高效和易用性著称。在开发过程中,我们经常需要处理各种打印需求,这正是 `vue-print-nb` 插件的作用所在。`vue-print-nb` 是一个针对 Vue.js 应用程序设计的...

    QT和网页中的JavaScript函数进行相互调用的实现

    例如,假设在网页中有一个名为`printMessage`的JavaScript函数,你可以这样调用它: ```cpp QWebEnginePage *page = view-&gt;page(); // view是QWebEngineView对象 page-&gt;runJavaScript("printMessage('Hello from ...

    window.print分页打印

    1. **媒体查询@media print**:你可以定义一套专门针对打印的CSS规则,比如隐藏某些在打印时不必要的元素或调整特定元素的样式。 ```css @media print { .no-print { display: none; } } ``` 2. **page-...

    java print打印组件

    Java Print打印组件是Java平台提供的一种用于处理打印任务的核心服务,它允许开发者在应用程序中集成打印功能,使得用户可以方便地将数据输出到打印机。Java Print Service API是Java标准版(Java SE)的一部分,...

    廖雪峰 JavaScript Python2.7/3 Git 教程(PDF,EPUB)

    2. **Python 2与3的区别**:如print语句、除法运算、字典排序、异常处理等方面的差异。 3. **标准库**:如os、sys、math、datetime等模块的使用。 4. **面向对象编程**:类的定义、继承、多态和封装。 5. **文件...

    printThis.zip

    这个插件的名字叫做 "printThis",它可能是用JavaScript编写,与jQuery库兼容,因为标签中提到了"pringThis jquery",这表明它是为了解决jQuery环境下的打印需求而设计的。 在Web开发中,前端打印功能是一个常见的...

    效率非常快的java读取javascript,附带源码和js.jar

    engine.eval("print('Hello, World!');"); } catch (ScriptException e) { e.printStackTrace(); } } } ``` 这段代码会打印出"Hello, World!",展示了如何在Java中使用Rhino执行简单的JavaScript。 Rhino还...

    jQuery.print实现jqprint打印程序

    在`jQuery.print`插件中,JavaScript和jQuery是实现打印功能的核心。JavaScript提供了与浏览器交互的能力,可以操作DOM(文档对象模型)并触发打印事件。jQuery作为一个轻量级的JavaScript库,简化了DOM操作,使得...

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

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

    jquery print plugin

    jQuery Print Plugin 是一款用于网页内容打印的JavaScript插件,它极大地简化了在Web应用中实现用户友好的打印功能。这个插件基于流行的jQuery库,为开发者提供了便利的方式来选择并打印网页的特定部分,而不仅仅是...

    107个常用Javascript语句

    ### 107个常用JavaScript语句解析 #### 1. `document.write("")` - **功能**:在页面上写入指定的内容。 - **应用场景**:适用于简单的测试或页面加载时输出信息。 - **示例代码**: ```javascript document....

Global site tag (gtag.js) - Google Analytics