`
飞天小女警
  • 浏览: 105842 次
  • 性别: Icon_minigender_2
  • 来自: 重庆
社区版块
存档分类
最新评论

WEB网页打印总结

阅读更多

普通打印(整页打)      打印网页内部分内容(自定义)        打印去掉/添加页眉页脚            使用外部控件/方法实现多功能打印            打印背景

以上为代码控制

设置“页面设置”实现打印参数设置(Window系统图文版)

一、普通打印(整页打)
这个不用多说,直接用



引用:
window.print();


二、打印网页内部分内容(自定义)

分三种方法实现
1、用css控制




引用:
@media print
.a {display:block}
.b {display:hidden}

把你不想打印的部分class设为b
首先在网页中添加:
     


引用:
<OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
      VIEWASTEXT>
      </OBJECT>

然后就可以依次加入功能按钮了:



引用:
<input  type="button" value="打印"> <input  type="button" value="直接打印">
      <input  type="button" value="页面设置">
      <input  type="button" value="打印预览"> <INPUT type="button" value="关闭窗口" >

将这两块东西放到<center class=noprint></center>就不会打印这些按钮了。当然要定义noprint了:
<style media="print">.Noprint { DISPLAY: none }</style>只要把不想打印的东西的css设置成noprint就可以了。
现在就实现了基本的web打印,需要注意的情况如下:
    a. 必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行...设置成提示或者启用,否则会报错,导致不可用。
    b. 如果在vs.net编辑环境下编辑该页面,它经常自动的给object添加多余的参数,有了这些东西,打印就会出错,所以要记得最后保存的时候删除它们。

2、用javascript打印固定标签内的内容
a、在页面的代码头部处加入JavaScript:



引用:
<script language=javascript>
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
window.print();
}
</script>


b、在页面正文处加上<!--startprint-->与<!--endprint-->标识。
也就是在需要用户打印保存的正文所对应的html处附加上。同时,如果采用小偷程序获得远程数据并需打印,可将此等数据置于该定义标签之内即可。
c、截取内容部分已完成,现在加个“打印”的链接:
<a href="javascript:;" >打印</a>

3、windows自带功能
按住鼠标的左键,将你想要打印的内容选定,然后单击右键选择“打印”,在弹出的打印对话框中的“页面范围”中选择“选定范围”就可以只打印你选择的内容了。


(三)打印去掉/添加页眉页脚



引用:

<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>
<input type="button" value="清空页码" onclick=pagesetup_null()>
<input type="button" value="恢复页码" onclick=pagesetup_default()>



复制出去,看下效果就可以了

(四)使用外部控件/方法实现多功能打印

1、IEWebBrowser组件(比较常用的方式)

介绍
http://support.microsoft.com/default.aspx?scid=kb%3BEN-US%3BQ267240#top
http://support.microsoft.com/kb/q247671/#appliesto

代码



引用:
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>   
<input name=Button onClick=document.all.WebBrowser.ExecWB(1,1) type=button value=打开> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(2,1) type=button value=关闭所有> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为>   
<input name=Button onClick=document.all.WebBrowser.ExecWB(6,1) type=button value=打印> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(10,1) type=button value=属性> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(17,1) type=button value=全选> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新> 
<input name=Button onClick=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭> 


2、使用ScriptX.cab控件


1.下载ScriptX.cab控件

官网http://www.meadroid.com/scriptx/index.asp

2.使用object元素,修改codebase,classid的值

这里调用控件ScriptX.cab

代码



引用:

<OBJECT id="factory" style="DISPLAY: none" codeBase="${rootUrl}js/smsx.cab#VVersion=6,3,435,20"  classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" viewastext></OBJECT> 


这段代码用来加载cab文件,clsid和codebase必须要和你下载的cab中的信息对应,否则组件会加载错误,这两项其实不难找,只要你用winrar打开你下载的cab文件,然后找到扩展名是.inf的文件,然后打开之,就能看到了。

3.调用控件脚本

Print.js文件
代码




引用:

function setPrintBase(headerText,footerText,rootUrl) { 
 
    // -- advanced features  ,未曾使用过,有待确认。 
 
        //factory.printing.SetMarginMeasure(2); // measure margins in inches 
 
        //factory.SetPageRange(false, 1, 3);// need pages from 1 to 3 
 
        //factory.printing.printer = "HP DeskJet 870C"; 
 
        //factory.printing.copies = 2; 
 
        //factory.printing.collate = true; 
 
        //factory.printing.paperSize = "A4"; 
 
        //factory.printing.paperSource = "Manual feed" 
 
    var header = (headerText==null||headerText=="")?'默认页眉':headerText; 
 
    var footer = (footerText==null||footerText=="")?'默认页角':footerText; 
 
  factory.printing.header = "&b"+header+"&b" ; 
 
  factory.printing.footer = "&b"+footer; 
 
  factory.printing.portrait = true; 
 
  factory.printing.leftMargin =10.00; 
 
  factory.printing.topMargin =10.00; 
 
  factory.printing.rightMargin =10.00; 
 
  factory.printing.bottomMargin =10.00; 
 





例子




引用:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
  <title>统计页面打印</title>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
 <meta http-equiv="Pragma" content="no-cache" />
 <meta http-equiv="Cache-Control" content="no-cache" />
 <meta http-equiv="Expires" content="0" />
  <script type="text/javascript">
    $(document).ready(function() {
    });
    function preview(){
     document.all.WebBrowser.ExecWB(7,1);//打印预览
   }
   function printPage(){
     document.all.WebBrowser.ExecWB(6,1);// 打印
   }
   function setPage(){
     document.all.WebBrowser.ExecWB(8,1);//打印页面设置
   }
   function showProperty(){
     document.all.WebBrowser.ExecWB(10,1);// 查看页面属性
   }
   function help(){
     window.open("${ctx}/common/printHelp.jsp");
   }
  </script>
  <style media=print>
   .noprint{display:none;}
  </style>

 </head>
<body style="overflow:scroll;overflow-x:hidden">
   <object id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0></object>
      <div align="center" class="noprint">
         <input type="button" class="ButtonStyle_long"  value="打印预览" onclick="preview()" />
         <input type="button" class="ButtonStyle_long"  value="打印" onclick="printPage()" />
         <input type="button" class="ButtonStyle_long"  value="页面设置" onclick="setPage()" />
         <input type="button" class="ButtonStyle_long"  value="关闭" onclick="javascript:document.all.WebBrowser.ExecWB(45,1);" />
         <input type="button" class="ButtonStyle_long"  value="帮助" onclick="help()" />
      </div>
      <br/>
      <table width="80%" cellpadding="0" cellspacing="0" >

     <tr><td>打印内容</td></tr>
        </table>
</body>
</html>
 






(五)打印背景
默认情况下,使用IE浏览器打印网页时,不打印网页背景。如果需要打印网页背景,可以采用如下的方法设置:
  1. 启动IE浏览器。
  2. 选择【工具】菜单中的【Internet选项】菜单项,打开【Internet选项】对话框。
  3. 打开【高级】选项卡,在【打印】选区中选择【打印背景颜色和图像】复选框。
  4. 单击【确定】按钮,关闭对话框。

(六)如何用IE打印网页




    Internet Explorer(简称IE)5.0以上版本强大的打印及打印预览功能。本文就向大家介绍如何用IE来打印网页。(谁?谁?谁在扔西红柿?下面一片嘘声:这还用得着你讲呀?!)咳咳咳,是的是的,在IE中打印网页实在是太简单不过了。只需点一下工具栏上“打印”按钮就可将当前网页打印出来。如下图所示:


    不过,你这样打出来的效果怎么样呢?我就不敢说了。我今天要和大家讲的就是一些打印方面的设置参数。如何大家把这些参数设置好,你就会发现IE的打印功能快追得上Word了。今后你打印网页时就可以想怎么打就怎么打了。好,闲话少说,现在就跟我来一起看看怎么样设置IE的打印参数。
    我们以下图要打印的学生名单(《学生学籍管理系统MX》查询结果网页)为例,讲解如何设置这些打印参数:


    假如我们直接点工具栏的“打印”按钮或点“文件”菜单中的“打印”进行打印这个网页的话,就会打印出很多不必要的信息。所以在打印前我们应先用IE5新增的“打印预览”功能查看当前网页的实际打印效果。如下图所示:


    在如下图所示的“打印预览”对话框中,我们可以看到,网页标题、网页的URL地址及打印日期等我们所不需要的信息也被打印出来了。而页码又在右上角,能不能把它移到其他位置(如我们常见的右下角)呢?




    能不能按照我们所想要的样式来打印网页呢?当然可以。一切就在“页面设置”中。


    弹出如下图所示的“页面设置”对话框,所有的秘密都在这里!


    原来,IE自动给我们在页眉和页脚处加上了这些不必要的打印信息。如果我们不想要任何页眉和页脚的话,直接删除它们就行了。:-)大部分时候我都是这样做的。但如果你想自定义页眉和页脚的时候,该怎么做呢?上面的那些“&w&b&p”等等究竟表示什么意思呀?给你个表格就知道了。 符号含义
&w 网页标题
&u 网页地址 (URL)
&d 短日期格式(由“控制面板”中的“区域设置”指定)
&D 长日期格式(由“控制面板”中的“区域设置”指定)
&t 由“控制面板”中的“区域设置”指定的时间格式
&T 24 小时时间格式
&p 当前页码
&P 总页数      
&b 文本右对齐(请把要右对齐的文字放在“&b”之后)
&b&b 文字居中(请把要居中的文字放在“&b”和“&b” 之间)
&& 单个 & 号 (&)
注:1、这些符号可以与文字组合使用,如本教程中的“页码,&p/&P”。
    2、页眉和页脚默认是左对齐的,所以IE只提供了右对齐和居中的设置符号。
    3、推荐给大家一种设置方法:页眉为空,页脚设为“&b第 &p 页 / 共 &P 页&b”,打印效果为在页脚居中显示“第 1 页 / 共 4 页”的效果。
    知道了上面的知识,你就可以打印了。但有时你会发现,网页中的一些图像在打印时不见了。Why?为什么会这样?别着急,IE的默认设置是不打印网页的背景颜色和图像的。您只需进入IE的Internet选项将它选中(打上勾)就行了。具体操作方法是:点IE的主菜单中的“工具”——“Internet选项”——再在弹出的对话框中占击“高级”选项卡,找到“打印背景颜色和图像”一项。如下图所示:



    然后将上图中红色圈住的选项打上勾,再点“确定”就OK了。

    至此,我们就完成了对IE的打印设置。接下来,只要我们没有关闭IE,我们就可以一直使用上述设置(最后一项“打印背景颜色和图像”的更改始终有效)进行打印。打印前一般先进行打印预览,效果满意后再开始打印。

分享到:
评论

相关推荐

    PHP和MySQL Web开发第4版pdf以及源码

    8.2.7 表格类型的总结 8.3 Web数据库架构 8.4 进一步学习 8.5 下一章 第9章 创建Web数据库 9.1 使用MySQL监视程序 9.2 登录到MySQL 9.3 创建数据库和用户 9.4 设置用户与权限 9.5 MySQL权限系统的介绍 ...

    PHP和MySQL WEB开发(第4版)

    1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 ...1.3.3 空格 1.3.4 注释 1.4 添加动态内容 ...5.2.2 使用require()制作Web站点...22.3.2 在图像上绘图或打印文本 22.3.3 输出最终图形 22.3.4 ...

    PHP和MySQL Web开发第4版

    8.2.7 表格类型的总结 8.3 Web数据库架构 8.4 进一步学习 8.5 下一章 第9章 创建Web数据库 9.1 使用MySQL监视程序 9.2 登录到MySQL 9.3 创建数据库和用户 9.4 设置用户与权限 9.5 MySQL权限系统的介绍 ...

    高性价比WIFI图传方案使用WEB配网发送get请求获取天气预报教程(免费版)-电路方案

    请看我:ESP8266上传DHT11数据给私人javaweb服务器实现网页查询数据的电路方案(电路图+源码))给ESP32模块,最后ESP32-CAMM模块通过串口打印出来天气情况(如果想把串口打印的消息输出到网页,请看我:ESP32-CAM高性价...

    Delphi5开发人员指南

    1.10 总结 15 第2章 Object Pascal语言 16 2.1 注解 16 2.2 新的过程和函数特征 17 2.2.1 圆括号 17 2.2.2 重载 17 2.2.3 缺省值参数 17 2.3 变量 18 2.4 常量 19 2.5 运算符 20 2.5.1 赋值运算符 20 2.5.2 比较...

    理光FTP扫描设置教程.docx

    * 需要在网页上登录打印的IP地址,进入地址簿管理,新建一个地址簿。 * 需要选择FTP协议,服务器名称是刚才建FTP时输入的IP地址,路径为空,登录用户名称为匿名账号:anonymous,密码为空。 本文为解决理光FTP扫描...

    asp.net知识库

    使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf部署 ASP.NET 2.0 Security FAQs Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp...

    整理后java开发全套达内学习笔记(含练习)

    System.out.print() 直接打印,不会自动换行 System.out.printf() 可插入带 % 的输入类型,前两种只可以插入转义符, 不能插入 % 的数据或字符串 在 printf 里面,输出有5个部分 %[argument_index$][flags][width][....

    DIVCSS布局大全.pdf

    目录 div+css 布局入门. 4 XHTML 下css+div 布局总结....................... 6 网页设计DIV+CSS——第1 天:选择什么样的DOCTYPE ..........WEB 打印实例教程. 30 Div+CSS 布局入门教程............... 37

    WAN综合实验-7.pka

    致用户: 或许您无需借助打印说明也可以完成本练习,不过我们仍在启动此练习的页面上为您提供了 PDF 版说明(位于页面的左侧)。 HQ 地址表 分支路由器的地址表 以分支路由器 B1、B2 或 B3 的编号代替 ”X”。 HQ...

    试卷分析系统毕业论文

    试卷分析系统是总结分析学校试卷质量的重要工具。本文以试卷分析系统的项目开发为基础,介绍了中国试卷分析评价软件的应用发展和市场需求,同时介绍了数据库的发展现状及在本系统中的应用,描述了整个系统的开发...

    ESP32-CAM、ESP8266、WIFI、蓝牙、摄像头设备实现嵌入式服务器点灯(原理图+源码)-电路方案

    局域网访问单片机主页(通过串口打印的网址)就可以在网页里面控制开发板的灯,该设计是ESP32-CAM物联网应用的一个巨大的尝试,本人浪费生命值写了两天代码,踩了很多坑,也学到很多,写了一共三个版本的代码,此...

    学校网络安全应急预案.doc

    一、各级处理预案 1、网站不良信息事故处理预案 (1)一旦发现学校网站上出现不良信息(或者被黑客攻击修改了网页),立刻关闭网站 。 (2)备份不良信息出现的目录、备份不良信息出现时间前后一个星期内的HTTP连接...

    vc++ 开发实例源码包

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    vc++ 应用源码包_1

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    vc++ 应用源码包_2

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    vc++ 应用源码包_6

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    vc++ 应用源码包_5

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

    vc++ 应用源码包_3

    CctryLog(web拦截网页帐号密码) 实现了一个控件去获得IHTMLDocument2接口,然后读取内容,匹配用户名与密码等。 CFile64_src 操作大文件,自定义了一个操作大文件的类,并进行了测试。 chapter7 实现了声音录制等...

Global site tag (gtag.js) - Google Analytics