<OBJECT   id=WebBrowser   classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2   height=0   width=0></OBJECT>   <input   type=button   value=打印           οnclick=document.all.WebBrowser.ExecWB(6,1)>   <input   type=button   value=直接打印   οnclick=document.all.WebBrowser.ExecWB(6,6)>   <input   type=button   value=页面设置   οnclick=document.all.WebBrowser.ExecWB(8,1)>   <input   type=button   value="打印OK"   οnclick="   return   myprint(this);">                         <input   type=button   value=打印预览   οnclick=document.all.WebBrowser.ExecWB(7,1)> 

概述:在Web中想用JavaScript实现打印功能,需要一个浏览器控件WebBrowser。WebBrowser是IE内置的浏览器控件,无需用户下载,只需要在页面简单的设置,就可以Dom方法获取到该对象. 本文将详细介绍如何运用WebBrowser实现打印功能。

在Web中想用JavaScript实现打印功能,需要一个浏览器控件WebBrowser。WebBrowser是IE内置的浏览器控件,无需用户下载,只需要在页面简单的设置,就可以Dom方法获取到该对象.

  WebBrowser 控件为 WebBrowser ActiveX 控件提供了托管包装。托管包装使您可以在 Windows 窗体客户端应用程序中显示网页。使用 WebBrowser 控件,可以复制应用程序中的 Internet Explorer Web 浏览功能,还可以禁用默认的 Internet Explorer 功能,并将该控件用作简单的 HTML 文档查看器。此外,可以使用该控件将基于 DHTML 的用户界面元素添加到窗体中,还可以隐瞒这些元素在 WebBrowser 控件中承载的事实。通过这种方法,可以将 Web 控件和 WindowsCS 窗体控件无缝地整合到一个应用程序中。

  WebBrowser 控件包含多种可以用来实现 Internet Explorer 中的控件的属性、方法和事件。例如,可以使用 Navigate 方法实现地址栏,使用 GoBack、GoForward、Stop 和 Refresh 方法实现工具栏中的导航按钮。可以处理 Navigated 事件,以便使用 Url 属性的值更新地址栏,使用 DocumentTitle 属性的值更新标题栏。

  用WebBrowser实现打印方法如下:

  1.引入一个WebBrowser

  <object id=”WebBrowser” classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=”0″ width=”0″>

  </object>

  2. 隐藏不打印的页面元素和分页

  CSS有个Media 属性,可以分开设置打印和显示的格式。

  如 <style media=”print” type=”text/css”> …</style> 中间的格式将只在打印时起作用,不会影响显示界面。

  所以可以设定

  <style media=”print” type=”text/css”>

  .Noprint{display:none;}

  .PageNext{page-break-after: always;}

  </style>

  然后给不想打印的页面元素添加: ,那就不会出现在打印和打印预览中了。 想分页的地方添加: <div></div> 就可以了。

  3. 页面设置和打印预览

  常用的:

  WebBrowser.ExecWB(1,1) 打开

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

  WebBrowser.ExecWB(4,1) 保存网页

  WebBrowser.ExecWB(6,1) 打印

  WebBrowser.ExecWB(7,1) 打印预览

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

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

  WebBrowser.ExecWB(15,1) 撤销

  WebBrowser.ExecWB(17,1) 全选

  WebBrowser.ExecWB(22,1) 刷新

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

  在ExtJs中实现打印

  简单来说就是将要打印的innerHtml内赋值给window.document.body.innerHTM,然后调用window.focus():

  function doPrint(){

  var printArea=…….;//这个是取得要打印的那个组件

  window.document.body.innerHTML=printArea.innerHTML;

  window.focus();

  WebBrowser.ExecWB(6,6);

  }

  window.print()

  上面ExtJs打印代码用到了window.print() ,实际上,window.print() 是浏览器打印功能菜单的一种程序调用。

  与点击打印功能菜单一样,不能精确分页,不能设置纸型,套打的问题更加无从谈起,只不 过,可以让用户不用去点菜单,直接点击网页中的一个按钮,或一个链接里面调用罢了。事实上,很多用户都是采用这种方式打印,但 是这种方式最致命的缺点是不能设置打印参数,比如纸型,页边距,选择打印机等等。

  需要指出的是这种方法提供一个打印前和打印后的事件onbeforeprint、onafterprint。可以在打印前的时候重新编辑一些格式,专门送 去打印,打印后又处理回来。

  分享一个国内打印工具 JatoolsPrinter:官方网站

  jatoolsPrinter (杰表.打印控件)是一款实现网页套打的专用工具。作为web应用开发者,我们经常会遇到在浏览器中打印报表、票据的需求,这些需求浏览器本身的打印功能 一般不能满足, 如精确分页,套打等。这就需要有一种能解决常见的浏览器端打印问题的软件工具,这也是 jatoolsPrinter 的研发背景。

  jatoolsPrinter 的特点是可以直接对web页面进行精确的分页打印。jatoolsPrinter 通过在网页中嵌入控件,解决了web客户端精确打印,批量打印,打印配置自动保留等问题。

  Related posts:

  JavaScript判断浏览器类型及版本

  获取XMLHttpRequest的步骤

  JavaScript中的闭包

  javascript 弹出子窗口

在Web中如何运用JavaScript实现打印功能相关推荐

  1. jdk nashorn_Nashorn-JDK 8中Java和JavaScript的组合功能

    jdk nashorn 从JDK 6开始,Java附带了基于Mozilla的Rhino的捆绑JavaScript引擎 . 此功能使您可以将JavaScript代码嵌入Java,甚至可以从嵌入式Java ...

  2. angular中使用essence-ng2-print插件实现打印功能

    在使用angular7做项目的时候,有个需求就是实现打印.百度搜索了一下,可以看到在angular中实现打印功能可以使用essence-ng2-print插件.网上也可以搜到其他的博客,但是真正用的时 ...

  3. Web中JS(Javascript)解析JSON数据的方法

    js解析json数据,可以使用JSON.parse()方法来实现解析.JSON.parse()方法可以解析JSON字符串,转换为 JavaScript 对象 下面我们就结合简单的代码示例,给大家介绍j ...

  4. html如何设置打印分页打印出来,网页中如何用 CSS 设置打印分页符

    Word 中按 Ctrl + Enter 创建一个分页符,方便打印,其实网页中也可以,用 CSS 的 page-break-after:always;. 第 1 页 第 2 页 第 3 页 任何浏览器 ...

  5. h5 页面多张图片打印功能

    最近在公司项目中,页面有个打印功能.需要打印所有的图片. 前端window.print() 前端vue代码: <!-- start --><!-- end --> 是指:要打印 ...

  6. 使用Vue @media print在JavaScript中插入不同尺寸的打印页面,可自定义尺寸大小和打印机配置

    本文介绍了如何在Vue项目中使用@media print和JavaScript来插入不同尺寸的打印页面,并提供了代码编写.使用教程.注意事项和避坑点,最后进行了总结. 一.介绍 在开发Web应用程序时 ...

  7. JS实现Web中指定内容的保存与打印功能

    背景 首先,说说文章的背景.最近手中的一个项目,由于需求中要求提供Web界面的打印功能,当然如果没有打印机,还可以提供保存到本地.项目组长把这个"小任务"分给了我.本着努力为组长分 ...

  8. Java中用JS那些_java web中javascript主要用哪些?

    java web中javascript主要用途是在页面上完成特定按钮的事件功能并且实现前后台交互. JavaScript 是一种跨平台,面向对象的脚本语言.作为一种小巧且轻量级的语言,JavaScri ...

  9. 在WEB中实现打印分页

    在WEB中实现打印分页 page-break-after版本:CSS2 兼容性:IE4+ 继承性:无    语法: page-break-after : auto ¦ always ¦ avoid ¦ ...

最新文章

  1. [转]在ubuntu上安装chrome浏览器
  2. Apache ZooKeeper - Leader 选举 如何保证分布式数据的一致性
  3. 客户端连ORACLE
  4. QT绘制堆叠水平条形图
  5. [Leetcode] Flatten Binary Tree to Linked List 整平二叉树
  6. JavaScript内存泄漏知多少?
  7. 容器化单页面应用中RESTful API的访问
  8. java actionscript_ActionScript(对比Java)学习笔记二
  9. 诗与远方:无题(二十七)- 写给我妹妹的一首诗
  10. python参数注解
  11. mysql强制编码导出、导入数据
  12. SpringMVC----视图层框架
  13. Cesium:entity闪烁(点、面以及billboard)
  14. 快速突破面试算法之图篇
  15. 递归大总结之斐波那契
  16. 微信分享等配置,微信授权失败讲解
  17. 如何取消html中页眉的下划线,Word文档页眉的横线怎么去掉?页脚的横线怎么去掉?...
  18. Vue warn 屏蔽
  19. MYSQL 基础篇(补)
  20. 身份证识别+人脸识别---“人证合一”查验系统

热门文章

  1. 音视频技术开发周刊 | 136
  2. 音视频技术开发周刊(第127期)
  3. SRS性能、内存优化工具用法
  4. FLV视频文件格式分析
  5. C++封装、继承、多态
  6. 深度学习网络模型AlexNet
  7. ubuntu 16.04 安装Caffe GPU版本
  8. JAVA程序设计----函数基础1
  9. leetcode 622. Design Circular Queue | 641. 设计循环双端队列(Java)
  10. 324. Wiggle Sort II | 324. 摆动排序 II(降序穿插)