问题描述
本人现在正在写一个打印的功能,基本的功能已经实现,但是现在还有一个问题是因为我们在打印的时候是按需求打印的,不同的需求打印出来的内容也有差别,现在想请大家帮忙解决一下这个问题,我应该怎么判断。补充条件:打印不同的地方就是页面的中间部分,当为001时显示一种数据,为002时显示另一种,或者001和002都显示。
解决方案
解决方案二:
帮顶!
解决方案三:
1:将次脚本加到页面中functionprintCheck(){varbodyHtml;varprintHtml;varprintStart;varprintEnd;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:加上打印连接<ahref="#"><imgsrc="${pageContext.request.contextPath}/images/print1.jpg"alt="打印"onclick="returnprintCheck();"width="35"height="15"border="0"></a>5:如果有按钮包含在打印范围内,而不想打印出来:a>:可用<spanid="printImg"></span>将按钮包含起来.b>:在printCheck()方法的最前面加上printImg.style.display='none';c>:在printCheck()方法的最后面加上printImg.style.display='';
解决方案四:
写函数调用
解决方案五:
引用2楼lixiaoyan3的回复:
1:将次脚本加到页面中functionprintCheck(){varbodyHtml;varprintHtml;varprintStart;varprintEnd;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:加上打印连接 <ahref="#"><imgsrc="${pageContext.request.contextPath}/images/print1.jpg"alt="打印"onclick="returnprintCheck();"width="35"height="15"border="0"> </a>5:如果有按钮包含在打印范围内,而不想打印出来:a>:可用<spanid="printImg"></span>将按钮包含起来.b>:在printCheck()方法的最前面加上printImg.style.display='none';c>:在printCheck()方法的最后面加上printImg.style.display='';
不太明白,我没有什么次脚本啊。您能说的明白一些吗?我只是想写一个函数做判断,然后调用不打印的样式。本人新手上路,请大家多多指教。
解决方案六:
什么意思不太清楚页面到底什么样?在后台取的页面上的值根据页面上是001还是002查询数据库数据这样?
解决方案七:
弹出一个新窗口window.open();在新窗口显示你要打印的内容(当为001时显示一种数据,为002时显示另一种,或者001和002都显示)。然后调用js:window.print();window.close();
解决方案八:
引用5楼zl3450341的回复:
什么意思不太清楚页面到底什么样?在后台取的页面上的值根据页面上是001还是002查询数据库数据这样?
数据是一次性都查出来的,而001和002就是一个字段的两个状态。所有的东西都在一个页面上。
解决方案九:
2:将<!--startPrint-->放到要打印的开始位置3:将<!--endPrint-->放到要打印的结束位置你要打印哪里就把那里括起来,开始处加上<!--startPrint-->,结束处加上<!--endPrint-->。要根据不同条件打印,可以判断下,比如<c:iftest="${flag=='001'}"><!--startPrint-->打印的内容<!--endPrint-->非打印的内容</c:if><c:iftest="${flag=='002'}"><!--startPrint-->打印的内容<!--endPrint-->非打印的内容</c:if>这里情况多了你用<c:when>...
解决方案十:
引用6楼jdk150的回复:
弹出一个新窗口window.open();在新窗口显示你要打印的内容(当为001时显示一种数据,为002时显示另一种,或者001和002都显示)。然后调用js:window.print();window.close();
新窗口是不行的,要求我就用一个页面来完成。
解决方案十一:
引用7楼lovepanpanlove的回复:
引用5楼zl3450341的回复:什么意思不太清楚页面到底什么样?在后台取的页面上的值根据页面上是001还是002查询数据库数据这样?数据是一次性都查出来的,而001和002就是一个字段的两个状态。所有的东西都在一个页面上。
那就做一个下拉框么选择是打印001还是打印002的根据选择的状态查询出数据看看这样可以么
解决方案十二:
引用8楼lixiaoyan3的回复:
2:将<!--startPrint-->放到要打印的开始位置3:将<!--endPrint-->放到要打印的结束位置你要打印哪里就把那里括起来,开始处加上<!--startPrint-->,结束处加上<!--endPrint-->。要根据不同条件打印,可以判断下,比如<c:iftest="${flag=='001'}"><!--startPrint-->打印的内容<!--endPrint-->非打印的内容</c:if><c:iftest="${flag=='002'}"><!--startPrint-->打印的内容<!--endPrint-->非打印的内容</c:if>这里情况多了你用<c:when>...
可是我非打印的内容也可能是打印的内容啊。
解决方案十三:
引用9楼lovepanpanlove的回复:
引用6楼jdk150的回复:弹出一个新窗口window.open();在新窗口显示你要打印的内容(当为001时显示一种数据,为002时显示另一种,或者001和002都显示)。然后调用js:window.print();window.close();新窗口是不行的,要求我就用一个页面来完成。
我是说在新窗口调用window.print();window.close();打印完之后自动关闭了,谁知道你是不是一个页面
解决方案十四:
引用10楼zl3450341的回复:
引用7楼lovepanpanlove的回复:引用5楼zl3450341的回复:什么意思不太清楚页面到底什么样?在后台取的页面上的值根据页面上是001还是002查询数据库数据这样?数据是一次性都查出来的,而001和002就是一个字段的两个状态。所有的东西都在一个页面上。那就做一个下拉框么 选择是打印001还是打印002的根据选择的状态查询出数据看看这样可以么
这样也不行,我那个页面上的内容非常多,而且不允许显示与他们所要数据无关的任何数据。
解决方案十五:
我给你说的你试过了吗?我们项目有这样用的,你再仔细看看吧
解决方案:
引用13楼lovepanpanlove的回复:
引用10楼zl3450341的回复:引用7楼lovepanpanlove的回复:引用5楼zl3450341的回复:什么意思不太清楚页面到底什么样?在后台取的页面上的值根据页面上是001还是002查询数据库数据这样?数据是一次性都查出来的,而001和002就是一个字段的两个状态。所有的东西都在一个页面上。那就做一个下拉框么 选择是打印001还是打印002的根据选择的状态查询出数据看看这样可以么这样也不行,我那个页面上的内容非常多,而且不允许显示与他们所要数据无关的任何数据。
恩,我有在试,但是好像不行。
解决方案:
怎么做都要有一个页面显示要打印的东西2楼的方法和open一个新的页面原理都是一样的只是打印的时候有一个页面信息变更的过程
解决方案:
引用16楼a276202460的回复:
怎么做都要有一个页面显示要打印的东西2楼的方法和open一个新的页面原理都是一样的只是打印的时候有一个页面信息变更的过程
我还是不明白,可以请大家说得更清楚一些吗?本人比较菜。我不能重新打开页面或者窗口,也不能写太多的重复代码,这样就算实现了,也会被打回来的。请大家多帮帮忙了!