`
gonglianying
  • 浏览: 195812 次
  • 性别: Icon_minigender_2
  • 来自: xxx
文章分类
社区版块
存档分类
最新评论

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

阅读更多
转载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控制隐藏不想打印的内容。


分享到:
评论
1 楼 July01 2017-10-31  
推荐用StratoIO打印控件,支持网页、URL、图片、PD、ZPL和EPL,浏览器和系统的兼容性都很好,
而且不会崩溃。页头页脚、页码都能定制。参考http://www.webprinter.cn/features

相关推荐

    .net打印源码2.0完全免费下 速度更快增加web打印

    功能特点: 增加了:excle模板打印 打印、预览、页面设置对话框 可以指定每个对象是否每页重复打印 可以调整套打 可以每页都显示当前页小计 可以为每页指定打印行数,小于等于0自适应,默认 可以打印装订线,分左...

    js使用小技巧

    Javascript小技巧一箩筐 ...语言设置 onclick="window.external.ShowBrowserUI("LanguageDialog", null)"&gt; 加入收藏夹 onclick="window.external.AddFavorite("http://www.google.com/", "google...

    Excel VBA实用技巧大全 附书源码

    04026利用Resize属性引用变更为指定大小的单元格区域 04027引用不包括标题行的单元格区域 04028引用不包括标题列的单元格区域 04029引用任意单元格区域的右下角单元格(之一) 04030引用任意单元格区域的右下角...

    asp.net知识库

    如何实现web页面的提示保存功能 在ASP.Net中两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页...

    超实用的jQuery代码段

    11.22 用jQuery打印网页的特定区域 11.23 禁止表单被提交 11.24 使用delay()延迟执行动画 11.25 在网页上运行本地程序的方法 11.26 动态过滤HTML表格中的内容 11.27 使用递归函数创建文字闪烁特效 11.28 使用ID...

    ActionScript开发人员指南中文版

    打印示例:页面设置和打印选项 第章:Geolocation 检测geolocation更改 第章:应用程序国际化 应用程序国际化基础知识 flashglobalization包概述 确定区域设置 设置数字格式 设置货币值格式 设置日期和时间格式 排序和...

    C#编程经验技巧宝典

    4 &lt;br&gt;0008 为程序设置版本和帮助信息 4 &lt;br&gt;0009 设置Windows应用程序启动窗体 5 &lt;br&gt;0010 设置Web应用程序起始页 5 &lt;br&gt;0011 如何设置程序的出错窗口 5 &lt;br&gt;0012 如何进行程序调试 6 ...

Global site tag (gtag.js) - Google Analytics