`
jinnianshilongnian
  • 浏览: 21434804 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2405125
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:2997783
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5631524
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:257583
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1593209
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:248980
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5847619
Group-logo
跟我学Nginx+Lua开...
浏览量:698182
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:780491
社区版块
存档分类
最新评论

web打印—背景不打印的简单不完美解决方案

阅读更多

web打印在一些开发中是比较常见的需求,最简单的办法是使用css print进行控制;对于一些建议可以参考http://slodive.com/web-development/css-print-page-tricks/;但是有时候我们需要设置背景或者其他类似的功能;如果不引入浏览器插件,我尝试了一下方法进行解决。

 

1、如图:


我想打印图中的投票结果条,该条之前是使用纯css实现,但是在IE上无法打印;目前是使用css背景+图片实现;

 

<div class="myprogress" title="${percent}%">
    <img class="mybar" src="${ctx}/static/images/bar.png" style="width: ${percent}%!important;"/>
</div>
    .myprogress {
        background: #f5f5f5!important;
        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
    }
    .mybar {
        width: 100%!important;
        margin-top: -5px;
        height: 18px;
    }
    @media print {
        body {-webkit-print-color-adjust: exact;}
        .no-print {display: none;}
    }

其中: body {-webkit-print-color-adjust: exact;} + background: #f5f5f5!important; 对chrome有效;filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);对IE有效(测试使用IE8,其他版本未测试);但是对firefox还是无效。

 

2、使用position:absolute的图片解决;这种方式麻烦,但是对IE、Firefox、Chrome浏览器都起作用;如图:

<div class="container">
    <img class="myimg" src="http://sishuok.com/common/images/enterprise/image2.jpg"/>
    <div class="mydiv">11111111111111111111111</div>
</div>
<div style="margin-top: 400px;">
    <input type='button' class="no-print btn" value='打印' onclick='javascript:window.print()'/> 
</div>
    <style media="all">
        .myimg {
            position: absolute;
            top:0;
            left: 0;
            width: 500px;
        }
        .mydiv {
            position: absolute;
            top: 0;
            left: 0;
            color: blue;
            background: red!important;
            filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='red',EndColorStr='red');
        }

        @media print {
            body {-webkit-print-color-adjust: exact;}
        }
    </style>

通过对图片进行绝对定位可以搞定。(对于Firefox div的背景在打印时会显示为白色)也需要改造成图片形式。

 

总起来说,以上都比较麻烦,但是如果您的页面不是很复杂,又不想引入打印插件,可以尝试这种方法解决一下。有朋友还有更好的方案吗?

 

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

相关推荐

Global site tag (gtag.js) - Google Analytics