jsp套打问题!!高手指教啊!!

maomaoyu2880 2008-11-26 12:22:11
最近做个项目用到了票据的套打,可是一系列的问题教我头疼,比如无法定位要打印的位置,还有表格边线隐藏问题等,是在叫人头疼,希望这里的高手们给点帮助:
页面代码大致如下:
<html>
<head>
<script language="JavaScript">

function prints(){//打印
if(!confirm("确定要打印吗?")) return;
var printArea = window.document.getElementById("printArea").innerHTML;//printPage 是变化代表的是表格的id也就是要打印的区域
var pwin=window.open("Print.htm","print","");
pwin.document.write(printArea);
pwin.document.close(); //这句很重要,没有就无法实现
pwin.print();
pwin.close();
}
function views(){//预览

var printArea = window.document.getElementById("printArea").innerHTML;//viewPage 是变化代表的是表格的id也就是要预览的区域
var pwin=window.open("View.htm","print","");
pwin.document.write(printArea);
pwin.document.close(); //这句很重要,没有就无法实现
}
</script>

<SCRIPT LANGUAGE="javascript">
<body>
<table name="table1">
<tr><td>姓名:</td><td><input type="text" name="username"></td></tr>
<tr><td>性别:</td><td><input type="text" name="usersex"> <td></tr>
<tr>
<td>家庭状况:</td>
<td>
<table>
<tr><td>父亲姓名:</td><td><input type="text" name="userfathername"></td></tr>
<tr><td>母亲姓名:</td><td><input type="text" name="usermathername"></td></tr>
</table>
</td>
</tr>
</table>
<div style="display:none">
<table name="table2" id="printArea">
<tr><td>姓名:</td><td><input type="text" name="username1"></td></tr>
<tr><td>性别:</td><td><input type="text" name="usersex1"> <td></tr>
<tr>
<td>家庭状况:</td>
<td>
<table>
<tr><td>父亲姓名:</td><td><input type="text" name="userfathername1"></td></tr>
<tr><td>母亲姓名:</td><td><input type="text" name="usermathername1"></td></tr>
</table>
</td>
</tr>
</table>
</div>
<a href="" onclick="prints()">prints</a>
<a href="" onclick="views()">view</a>
</body>
</html>
在文本框中输入相关信息后点击打印把table1文本框的值赋给table2相应文本框 然后吧信息打印在相应的位置,
我在prints()方法里做了赋值处理,但是每当第一次点击时,相应的位置的值都为空,第二次才有值,还有就是表格的边线总是能打印出来,怎么能隐藏表格边线呢,用css更改表格边线颜色也试过了,可是还是能打印出表格,不知道怎么处理了,希望有人能帮帮我...
...全文
88 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Even713 2008-11-28
  • 打赏
  • 举报
回复
一、普通打印(整页打)
这个不用多说,直接按CTRL+P或引用window.print();


二、打印网页内部分内容(自定义)

分三种方法实现
1、用css控制


引用:
@media print
.a {display:block}
.b {display:hidden}

把你不想打印的部分class设为b
首先在网页中添加:


引用:
<OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" VIEWASTEXT > </OBJECT >

然后就可以依次加入功能按钮了:


引用:
<input type="button" value="打印" > <input type="button" value="直接打印" >
<input type="button" value="页面设置" >
<input type="button" value="打印预览" > <INPUT type="button" value="关闭窗口" >

将这两块东西放到 <center class=noprint > </center >就不会打印这些按钮了。当然要定义noprint了:
<style media="print" >.Noprint { DISPLAY: none } </style >只要把不想打印的东西的css设置成noprint就可以了。
现在就实现了基本的web打印,需要注意的情况如下:
a. 必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行...设置成提示或者启用,否则会报错,导致不可用。
b. 如果在vs.net编辑环境下编辑该页面,它经常自动的给object添加多余的参数,有了这些东西,打印就会出错,所以要记得最后保存的时候删除它们。

2、用javascript打印固定标签内的内容
a、在页面的代码头部处加入JavaScript:


引用:
<script language=javascript >
function doPrint() {
bdhtml=window.document.body.innerHTML;
sprnstr=" <!--startprint-- >";
eprnstr=" <!--endprint-- >";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
window.print();
}
</script >


b、在页面正文处加上 <!--startprint-- >与 <!--endprint-- >标识。
也就是在需要用户打印保存的正文所对应的html处附加上。同时,如果采用小偷程序获得远程数据并需打印,可将此等数据置于该定义标签之内即可。
c、截取内容部分已完成,现在加个“打印”的链接:
<a href="javascript:;" >打印 </a >

3、windows自带功能
按住鼠标的左键,将你想要打印的内容选定,然后单击右键选择“打印”,在弹出的打印对话框中的“页面范围”中选择“选定范围”就可以只打印你选择的内容了。


(三)打印去掉/添加页眉页脚


引用:

<script language="JavaScript" >
var hkey_root,hkey_path,hkey_key
hkey_root="HKEY_CURRENT_USER"
hkey_path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"
//设置网页打印的页眉页脚为空
function pagesetup_null(){
try{
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key="header"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")
hkey_key="footer"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")
}catch(e){}
}
//设置网页打印的页眉页脚为默认值
function pagesetup_default(){
try{
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key="header"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&w&b页码,&p/&P")hkey_key="footer"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"&u&b&d")
}catch(e){}
}
</script >
<input type="button" value="清空页码" onclick=pagesetup_null() >
<input type="button" value="恢复页码" onclick=pagesetup_default() >

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧