转载http://hi.baidu.com/zyb512/blog/item/e9cf70441ce0984a500ffe79.html 
1.利用组件把报表的内容生成WORD文档或者是Excel文档,导出以后利用Office自带的打印功能进行打印

2.在网页上利用javascript或者是其他基于javascript和其他语言的组建

下面详细介绍这两种方法

1.生成word或者是Excel文档,当要打印的区域内容为文本的时候适合导出为Word文档来处理,当要打印的内容为表格的时候适合导出为Excel文档,在JSP中可以利用Jxl,jacob,POI等组建进行office文档的处理,个人推荐使用POI,这个组件是由apache基金开发维护的,其在开源领域的地位无可置疑。这个组件的使用方法不再详细介绍,再它的帮助文档上面有详细的使用方法和示例代码。可以满足各种基本的开发需要。

2.采用javascript或者打印组件的方法就更多了,下面简单介绍几种方案并给出其中一个方案的详细代码

a.用纯javascript代码:

这种方法就是简单的调用window.open()方法,这中方法的功效等同于用IE的打印功能,将对整个页面所见的内容进行全部的打印,而且会自动打印出页眉页脚。

b.修改注册项,和其它针对某一种浏览器的解决方案

这种方法的原理基本上都是进入客户端系统的注册表,把里面的某些IE选项进行修改,例如屏蔽或者是修改页眉页脚等自定义的打印方方案,这种反感的弊端是非常明显的,首先要在网页上修改注册表项需要再客户端降低浏览器的安全性设置,这将给客户的计算机带来很大的风险,而且这些方法都是在注册表中找到浏览器的位置然后进行操作,这就将处理局限为某一种或者是几种浏览器,而且也将客户端的操作系统局限为Windows

c.第三方的插件

采用第三方的插件,例如ScriptX,WebPrint等,这也第三方的原理基本上同 b 方案相同,也有的是采用纯javascript代码进行封装,但是采用这种插件就需要客户端在打印的时候安装插件,同样需要降低客户端的安全设置,如果有防火墙或者是杀毒软件的影响将不能起到作用,而且这种方案的运行速度很成问题,加载插件的处理严重影响运行速度,不过这种方案的打印效果倒是非常理想的

d.折衷方案

采用WebBrowser和javascript和CSS结合起来

打印指定区域 
   在页面上显示 打印   打印预览   页面设置 按钮 ,用来对打印进行设置,这样可以去掉页眉页脚 
   在javascript中采用CSS控制隐藏不想打印的内容 
       下面是详细的代码(注:由于利用javascript里面构造新页面,所以构造代码连在一起,否则javascript解释错 误):

   <html> <head> <script language="javascript"> function printme() { var print = this.document.getElementById("print").innerHTML; print = print +"<br/>" print = print +'<SCRIPT language=javascript> function printView(){hidden();document.all.WebBrowser.ExecWB(7,1); } function print(){hidden();document.all.WebBrowser.ExecWB(6,6)}function pageSetup(){hidden();document.all.WebBrowser.ExecWB(8,1);}function hidden(){document.all("printView").style.display="none"; document.all("print").style.display="none"; document.all("pageSetup").style.display="none";}<\/script>'; print = print + "<OBJECT   classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2   height=21   id=WebBrowser   width=87></OBJECT> <input id=printView name=Button   onClick=printView()   type=button   value=打印预览> <input id = print name=Button   onClick=print()   type=button   value=直接打印>   <input id = pageSetup name=Button   onClick= pageSetup() type=button   value=页面设置>"; var newWindow = window.open(); newWindow.document.open("text/html");   newWindow.document.write(print);   newWindow.document.close();     }
</script> </head>
<body> <span id='print'>把要打印的内容放这里</span>
<p>所有内容</p>
<a href="javascript:printme()" target="_self">打印</a> </body>
</html> 

代码解释: 把要打印的内容放在 id为print 的区域内在 printme函数中把 要输出的内容放入一个新的也页面,在新页面里面进行打印的处理,在新页面里面用WebBrowser对象进行打印的处理,用css控制隐藏不想打印的内容。

WEB页面打印--打印指定区域,页面预览,页面设置

转载于:https://www.cnblogs.com/CryOnMyShoulder/p/7603182.html

WEB页面打印--打印指定区域,页面预览,页面设置相关推荐

  1. Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别

    效果图: 第一种是使用camerax进行预览,android camerax预览官方文档,主要通过imageAnalysis,抓帧进行图片处理,然后通过android自带的图片人脸识别FaceDete ...

  2. 使用jqprint打印网页指定区域的内容

    使用jqprint打印网页指定区域的内容 文章目录 使用jqprint打印网页指定区域的内容 插件 使用 demo 最终效果 根据工厂的需求,要在浏览器上打印执行一系列操作之后,打印出一个标签,贴在包 ...

  3. 【web小票打印】谷歌浏览器跳过预览直接打印(lodop)

    因项目需求,需要在网页端直接打印订单小票,然后客户给寄了一台得力热敏票据打印机.lowlowlow,人家都是什么云打印了.... 上产品官网溜达了一圈啥也没给,就给了驱动安装.装完在打印的时候选择该打 ...

  4. 职称计算机考试单打印,职称计算机考试:单独打印Excel指定区域的方法

    一.区域设置法 如果每次都是打印某一个固定的区域,用这种方法是最合适的. 启动Excel2003(其它版本请仿照操作),打开相应的工作簿文件,选中需要打印的区域,执行"文件→打印区域→设置打 ...

  5. web项目使用OpenOffice实现前端在线预览office文档(超详细)

    超详细的OpenOffice实现前端在线预览office文档记录 最近搞一个数字化共享平台,是一个java web项目,使用框架ssm,其中项目有一个需要在线预览PDF.excle.ppt.word文 ...

  6. [Office Web Apps]实现在线office文档预览

    摘要 在使用office web apps实现office文档在线预览的时候,需要注意的地方. web api web api作为owa在线预览服务回调的接口,这里面核心代码片段如下: using H ...

  7. office web viewer实现office文档在线预览

    office web viewer实现office文档在线预览 office web viewer官网介绍 若要自行制作 URL,您可使用以下链接,其中 <文档位置> 是文档的 URL. ...

  8. html打印指定区域内容,js print打印网页指定区域内容

    比较简单的办法 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内. 细如下: 代码如下 .noprint{visibility:hidden} 要打印的内容.哈哈! ...

  9. Lodop在页面获取打印机列表 选择打印机预览

    利用GET_PRINTER_COUNT,获取打印机个数,然后用GET_PRINTER_NAME(intPrinterIndex);循环获取打印机名称,添加到list列表里,可以让用户在页面就选择打印机 ...

  10. vue-print-nb的使用,没打印时没水印,打印预览页面设置水印

    1.安装 npm install vue-print-nb --save 2.在main.js中配置 import Print from 'vue-print-nb' Vue.use(Print) 3 ...

最新文章

  1. 海量数据处理的思路和方法
  2. WCF服务编程(4):《WCF服务编程》第3版中文版翻译结束,即将出版
  3. AndoridSQLite数据库开发基础教程(9)
  4. 【产品】腾讯产品经理总结:toB的产品经理和toc产品经理区别
  5. 云炬随笔20161117
  6. 基于SLIC分割的特征点检测
  7. 解决iPhone网络软件在睡眠情况断线问题
  8. 小弟个人学习的过程!!!
  9. 翻车实录之Nature Medicine新冠单细胞文献|附全代码
  10. AFNetworking下 http 改 https后遇到出现Error Domain=NSURLErrorDomain Code=-999 已取消 错误...
  11. JAVA阻塞队列LinkedBlockingQueue 以及非阻塞队列ConcurrentLinkedQueue 的区别
  12. matlab画圆的命令_matlab画圆命令.doc
  13. 开发人员常说的CLI是什么
  14. CPU运算器、控制器、寄存器
  15. 计算机控制系统的品质指标,过程控制系统的品质指标.PPT
  16. 记录一次oracle中count特别慢的解决方案
  17. 华为设备路由策略配置命令
  18. 扶苏的bitset浅谈
  19. 视频教程-SpringBoot实战教程:SpringBoot入门及前后端分离项目开发-Java
  20. java计算机毕业设计乡村基层政务管理系统源代码+数据库+系统+lw文档

热门文章

  1. linux没法上网,LINUX没法上网?
  2. [红尘]被风吹过的夏天
  3. MATLAB中 / 和 \ 的区别
  4. RingBuffer的快速上手使用方法
  5. java.sql.SQLException: No database selected
  6. BBU与RRU、RRH
  7. basler相机的类
  8. Word美化技巧:Word文档怎么设置背景图片?
  9. Drupal7 数据库查询
  10. -webkit-background-clip属性不生效问题