4Fang财务软件、四方在线软件、SaaS

简单实用的就是最好的!
帮助中心 | 登录 | 注册 | 关于 |

 
  5. 特殊应用

jangogo @ 2009-6-22 11:44:00

A. 打印指定的frame ,如果我们有多个iframe 或者frame ,我们想打印其中的某一个,怎么办?
    方法一:在要打印的frame中嵌入PAZU,用户在打印的时候,点击该frame的打印按钮
    方法二:打印前先用javascript 让要打印的frame获得焦点,再调用doPrint(false) 方法
        例子:
 
  1. windows.frames['myframe'].focus();   
  2. pazu.doPrint(false);  
 

B.页面载入的时候立即打印或者获得打印机和纸张列表
      你可以在<body>的onload事件里面完成你要的工作
 

C.同一个页面里面,有些内容,如某个DIV或者按钮我们不想打印出来,但是屏幕上有需要显示,怎么办?
 
      在你的不打印的元素里面的样式表类class里面,添加一个p__的就可以了
 
  1. <!-- //设置某些页面元素不打印,只要在该元素的样式类class里面添加一个p__就可以了,看myDIV的class-->  
  2.  
  3. <div class="myDIVClass  p__" id="myDIV">这个DIV和"打印试试"按钮都不会被打印</div>  
  4. <input class="p__" name="Button1" type="button" value="打印试试!" onclick="demo();" style="width: 301px" />  
  5.  

          D.  连续循环打印?超多超大数据集的打印?
              这种应用有两种实现方式,要具体看数据的多少。
              1. 如果数据量不大(一个网页可以把所有要打印的数据显示出来,虽然网页要滚动才能显示,但是生成的HTML体积不大,而且用户不需要等待太长的时间来生成全部),如:一张出货单,需要分开多页打印出来
                  这种情况可以在网页要分页的地方 插入 一个css样式的分页,打印的时候就会自动分页打印了。我们的四方在线的凭证打印、账簿的打印、单据的打印都是采用这种方式。
                 具体实现例子如下:
 
  1. <!--以下三个div会自动分成三页打印-->  
  2. <div style="page-break-after:always"> 这是第一页的内容 </div>  
  3. <div style="page-break-after:always"> 这是第二页的内容 </div>  
  4. <div style=""> 这是第三页的内容 </div>  

              2. 如果数据量大,或者程序设计上不能做到一个网页把所有要打印的内容都容纳进来, 例如要打印10万个客户的账单,账单的数据在服务器的数据库中
                  这种需求实际上是通过循环多次载入页面实现的,你可以动态载入动态页面来实现,在我们的四方在线软件里面就有一个按月打印凭证的功能,就是这样的一种应用方式。
                 具体实现如下:
     
 
  1. //假设当前页面为:thispage.jsp       
  2. //利用javascript ,打印完成后自己载入下一页       
  3. //在页面中引入PAZU打印控件后,参考一下javascript       
  4. window.onload=function(){       
  5.    //先对页面参数进行设置       
  6.   pazu.TPrinter.header="";       
  7.    //其他设置,这里省略....       
  8.    //执行打印,打印的时候注意不能预览,也不能提示用户选择打印机,而是让pazu直接输出到打印机       
  9.   pazu.TPrinter.doPrint(false);       
  10.     //延迟一点时间,让页面重新载入下一页       
  11.   setTimer("printNextPage();",1000);       
  12. };       
  13.       
  14. function printNextPage(){       
  15.     window.location.href="thispage.jsp?pageid=NextPage";       
  16. }