最近在做一个发票打印的功能,由于业务需要,所以要用html设计好打印样式,然后通过打印html页面的形式去打印内容。
首先。。。。。你得有一个设计好的样式页面,然后把数据注入到你的页面中。 好,然后打开页面查看下效果。
window.open(url,'newindow','height=600,width=900,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no');
好,页面搞定。
然后在本页做一个隐藏iframe效果。实现点击打印直接弹出打印界面,而不是这个页面
<iframe id="myiframe" name="myiframe" style="display:none"></iframe>
js代码。
self.frames['myiframe'].window.location.href=url;
好的,然后点击我们的打印按钮。
原理就是点击打印,然后查询数据,并把数据返回到发票设计的页面,然后在发票设计页面调用print()方法。 print方法是lodop自带的,不需要我们去写,代码如下。
<a href="javascript:;" class="btn-a" οnclick="print()"></a>
过程很简单,但也很曲折,我页面上列表的排列方式是在数据库中完成的,所以放到页面上后出现了空格和回车被解析的问题。
冥思苦想后决定使用pre标签试试,没想到碰巧让我给解决了。 在此贴出代码
<pre>${item.FSMX}</pre>
原因就是html标签解析不了jsp代码。