本人现在正在写一个打印的功能,基本的功能已经实现,但是现在还有一个问题是因为我们在打印的时候是按需求打印的,不同的需求打印出来的内容也有差别,现在想请大家帮忙解决一下这个问题,我应该怎么判断。
补充条件:
     打印不同的地方就是页面的中间部分,当为001时显示一种数据,为002时显示另一种,或者001和002都显示。

解决方案 »

  1.   

    1:将次脚本加到页面中
    function printCheck(){
    var bodyHtml;
    var printHtml;
    var printStart;
    var printEnd;
    bodyHtml=window.document.body.innerHTML;
    printStart  =   "<!--startPrint-->";
    printEnd    =   "<!--endPrint-->";
    printHtml   =   bodyHtml.substring(bodyHtml.indexOf(printStart)+17); 

    printHtml   =   printHtml.substring(0,printHtml.indexOf(printEnd));
    window.document.body.innerHTML = printHtml;
    window.print();
    window.document.body.innerHTML = bodyHtml;

    }2:将<!--startPrint-->放到要打印的开始位置
    3:将<!--endPrint-->放到要打印的结束位置
    4:加上打印连接
      <a href="#">
    <img src="${pageContext.request.contextPath }/images/print1.jpg" alt="打印" onclick="return printCheck();" width="35" height="15" border="0">
      </a>
    5:如果有按钮包含在打印范围内,而不想打印出来:
    a>:可用<span id="printImg"></span>将按钮包含起来.
    b>:在printCheck()方法的最前面加上printImg.style.display='none';
    c>:在printCheck()方法的最后面加上printImg.style.display='';
      

  2.   

    弹出一个新窗口window.open();
    在新窗口显示你要打印的内容(当为001时显示一种数据,为002时显示另一种,或者001和002都显示)。
    然后调用js:
    window.print();
    window.close();
      

  3.   

    2:将<!--startPrint-->放到要打印的开始位置
    3:将<!--endPrint-->放到要打印的结束位置你要打印哪里就把那里括起来,开始处加上<!--startPrint-->,结束处加上<!--endPrint-->。要根据不同条件打印,可以判断下,比如<c:if test="${flag=='001'}"><!--startPrint-->打印的内容<!--endPrint-->非打印的内容</c:if><c:if test="${flag=='002'}"><!--startPrint-->打印的内容<!--endPrint-->非打印的内容</c:if>这里情况多了你用<c:when>...
      

  4.   

    我是说在新窗口调用
    window.print();
    window.close();
    打印完之后自动关闭了,谁知道你是不是一个页面
      

  5.   

    怎么做都要有一个页面显示要打印的东西 
    2楼的方法和open一个新的页面原理都是一样的 
    只是打印的时候有一个页面信息变更的过程