`
cherryQQ
  • 浏览: 1137370 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

js 设置打印样式

阅读更多
最近在开发一个打印回执的东东,找到不错的js设置打印样式 希望遇到相同问题的朋友共享!

最近写一些东西需要提供网页打印功能,所以归纳总结了一下,本节主要讲述使用IE6支持打印功能,不同浏览器安全设置与支持有差异,如果不支持,请使用您的浏览器自带打印功能(或手动设置启用ActiveX控件)。书写有不足或描述不清的地方请大家指正。^-^

利用CSS样式打印是经常使用的一种打印方法,利用它可以非常方便的实现打印页面中的指定内容和分页打印,下面将通过具体实例介绍如何利用CSS样式打印。

[分析]:
1.打印样式区分:打印网页带页面样式,需指明一个media='print'的样式,建议分开,如下创建军一个bankprint.css打印样式文件。
<link rel="stylesheet" media="screen" type="text/css" href="/public/default/css/bank.css" />
<!-- 打印样式 -->
<link rel="stylesheet" media="print" type="text/css" href="/public/default/css/bankprint.css" />
例:
<style media=‘print’>

.Noprint {display:none;}

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

</style>
说明:
media类型是CSS属性媒体类型,用于直接引入媒体的属性。其语法格式如下:
@media screen | print | projection | braille | aural | tv | handheld | all
参数说明
  screen:指计算机屏幕。
  print:指用于打印机的不透明介质。
  projection:指用于显示的项目。
  braille:盲文系统,指有触觉效果的印刷品。
  aural:指语音电子合成器。
  tv:电视类型的媒体。
  handheld:指手持式显示设备。
  all:用于所有媒体。
2.WebBrowser控件
同其他控件一样,首先我们需要在页面中嵌入WebBrowser控件,不过由于该控件是IE浏览器自带的,支持浏览器默认安全设置,因此避免了安全性设置的麻烦。对于IE7及以上安全性要求更高的浏览器,您或许还是需要自定义IE的安全性级别。
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" id="wb" width="0" height="0"></OBJECT>
下面就是该控件涉及打印的功能调用,用户可以在JavaScrip中调用:
wb.execwb(6,1); //打印,打印当前页面
wb.execwb(7,1); //打印预览
wb.execwb(8,1); //打印设置,调出系统打印设置对话框

3.页眉、页脚设置:打印时,有的需要去掉页眉页脚,或替换成自已想要的。
<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,"");
            //&b 第&p页/共&P页 &b
        }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>

[源码例子]:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>打印设置</title>
<link rel="stylesheet" media="screen" type="text/css" href="http://www.chinasvf.com/Webs/public/default/css/bank.css" />
<!-- 打印样式 -->
<link rel="stylesheet" media="print" type="text/css" href="http://www.chinasvf.com/Webs/public/default/css/bankprint.css" />
<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,"");
            //&b 第&p页/共&P页 &b
        }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){}
    }  
     //打印选区内容
    function doPrint() {
        pagesetup_null();
        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();
    }
    //打印页面预览
    function printpreview(){
        pagesetup_null();
        //wb.printing.header = "居左显示&b居中显示&b居右显示页码,第&p页/共&P页";
        //wb.printing.footer = "居左显示&b居中显示&b居右显示页码,第&p页/共&P页";
        try{
            wb.execwb(7,1);
        }catch(e){
            alert("您的浏览器不支持此功能,请选择'文件'->'打印预览'");
        }
    }
    //打印
    function prints(){
        pagesetup_null();
        //wb.printing.header = "居左显示&b居中显示&b居右显示页码,第&p页/共&P页";
        //wb.printing.footer = "居左显示&b居中显示&b居右显示页码,第&p页/共&P页";
        try{
            wb.execwb(6,1);
        }catch(e){
            alert("您的浏览器不支持此功能");
        }
    }
</script>
</head>
<body>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" id="wb" width="0" height="0"></OBJECT>
<div id="bankwrap">
  <div class="Noprint"><a href="http://www.chinasvf.com" style="cursor:pointer; color:#0000FF">返回首页</a></div>
  <div style="text-align:right">
    <p class="Noprint">
        <span style="cursor:pointer; color:#0000FF" onclick="javascript:window.open('http://www.chinasvf.com/Webs/Share/printhelp')" class="Noprint">打印帮助</span>
        <span style="cursor:pointer; color:#0000FF" onclick="printpreview();">打印预览</span>
        <span style="cursor:pointer; color:#0000FF" onclick="prints();" class="Noprint">打印</span>
    </p>
  </div>
  <div class="banktitle">内容</div>
</div>
</body>
</html>
分享到:
评论

相关推荐

    js打印设置页边距

    最通用的方法是通过CSS的`@media print`规则来设置打印样式,包括页边距。例如: ```css @media print { body { margin: 1cm; /* 设置整体页边距 */ } /* 更具体的元素设置 */ h1 { page-break-before: ...

    js iframe 打印 打印预览 页眉页脚的设置

    在JavaScript(JS)中,利用iframe进行打印和打印预览是常见的需求,特别是在网页开发中。这个场景下,我们可能需要自定义页眉和页脚,以提供更专业的打印效果。下面将详细介绍如何通过JS实现这个功能。 首先,我们...

    javascript网页打印设置

    总的来说,JavaScript网页打印设置涉及多个方面,包括使用`window.print()`、创建打印样式表、媒体查询、`@page`规则以及事件监听器。通过这些技术,开发者可以创建出满足用户需求、定制化程度高的打印体验。

    pdf打印带样式

    JavaScript打印,标签“js打印”,则是指利用JavaScript的window.print()方法或更高级的APIs来控制浏览器的打印行为。当用户触发打印操作时,JavaScript可以预先处理页面,比如隐藏不需要打印的元素,调整样式以适应...

    迷你2004CAD安装程序和打印样式

    2009年10月13日.ctb是用户自定义的一个打印样式表,可能包含特定的打印设置,比如线条颜色与宽度的映射,对于批量处理图纸打印非常有用。 “使用说明.txt”文件通常会包含有关如何安装和使用这些文件的详细步骤,这...

    js打印(有设置和预览功能)

    在本实例中,`print.html`文件可能包含了预览页面的代码,它利用CSS媒体查询(`@media print`)来定义打印样式,使得页面在打印时呈现不同的布局。开发者可以通过这种方法隐藏非打印元素,调整页面边距,以及控制字体...

    javascript,js打印

    例如,可以定义`@media print`规则,为打印样式设置专门的CSS属性,隐藏不必要的元素或者改变某些元素的布局和样式。 3. **选择性打印**: 如果只想打印页面的某个部分,可以通过创建一个新的HTML窗口,将需要打印...

    js应用大全 js打印 打印预览 设置

    ### JS应用大全:打印、打印预览设置与高级特性详解 在现代Web开发中,JavaScript(简称JS)作为客户端脚本语言,其功能强大且应用广泛。本文将深入解析JS在打印、打印预览设置方面的应用,同时涵盖正则表达式、...

    Js打印功能,支持局部打印

    总的来说,"Js打印功能,支持局部打印"这一主题涵盖了JavaScript的打印API、CSS打印样式以及可能需要的第三方库的使用。开发者可以通过学习和实践这些样例,提升网页打印功能的用户体验,同时解决在复杂场景下的打印...

    js打印WEB页面与打印预览

    然后,在CSS样式中,我们可以将这个类设置为隐藏状态,这样在打印时这些内容就不会被打印出来。 例如: ```css .noprint { visibility: hidden; } 将不打印的代码放在这里。 &lt;a href="javascript:window....

    JS控制打印指定div(且控制css样式)的一种另类思路

    打印指定div的插件并不多,使用JPrintArea进行指定div打印也并不好控制,此段js代码是在他人基础上融入了自己的想法,经过测试,纸张打印出来的样式在多个浏览器(ie6、ie7、ie8、火狐、谷歌)上可以做到基本统一,...

    JS实现在线打印

    为了控制打印样式,可以使用CSS媒体查询来针对屏幕显示和打印输出设置不同的样式。例如,你可以隐藏在打印时不需显示的元素,或者调整布局以适应纸质媒介: ```css @media print { .no-print, .ads { display: ...

    工具-打印:js打印插件

    5. **事件监听与交互**:插件通常会监听用户的交互,例如点击打印按钮,然后触发预处理逻辑(如构建打印副本、设置打印样式等)。 6. **浏览器API兼容**:对于浏览器之间的差异,开发者可能需要使用条件语句或库...

    网页打印控件JS版

    开发者还可以自定义打印样式,确保打印出来的内容与网页显示一致。 在实际应用中,JsPrint的使用步骤大致如下: 1. 在HTML文件中引入JsPrint库,通常是在`&lt;head&gt;`部分通过`&lt;script&gt;`标签添加引用。 ```html ...

    js调用iframe实现打印页面内容的方法

    除了使用iframe或jQuery库的方法外,还应该注意打印样式的设计,确保打印出的内容符合用户的期望和实际需求。在实际应用中,可能还需要处理页面中的JavaScript脚本和其他动态内容的打印问题,确保打印内容的准确性和...

    通过调用 JS 打印图片信息

    对于IE浏览器的页眉和页脚问题,IE提供了一种通过CSS控制打印样式的方法,可以移除不必要的页眉和页脚信息。在CSS中,我们可以添加以下规则: ```css @media print { @page { margin: 0; /* 移除页面边距 */ ...

    jquery.PrintArea.js-2.4.0-打印功能.rar

    jQuery PrintArea.js是一款轻量级的JavaScript插件,它基于jQuery库,专为网页打印设计。通过简单的API调用,开发者可以快速设置打印区域,避免用户打印不必要的网页元素,提高用户体验。该插件在2.4.0版本中,优化...

    Printer_js_css 纯js实现web打印服务,完全兼容

    JavaScript打印服务主要通过调用浏览器的`window.print()`方法来实现,但仅仅依赖这个方法往往无法满足复杂的需求。Printer_js_css 提供了更高级的功能,例如预览、选择打印机、设置打印选项等,这些都是通过自定义...

    js 打印插件

    3. **打印设置**:在JavaScript打印插件中,设置页眉和页脚是一项重要的功能。这通常通过CSS样式来实现,可以在打印样式表中定义特定的页眉和页脚内容,这些内容会在打印时出现在每一页的相应位置。同时,也可以通过...

    JS 实现web分页打印功能

    首先,`Window.print()`方法是JavaScript中用于调用浏览器内置的打印对话框的函数,用户可以在该对话框中选择打印机、页面设置等选项,然后开始打印操作。为了确保在各种浏览器中都能正常工作,我们需要关注以下几点...

Global site tag (gtag.js) - Google Analytics