日期:2014-05-18  浏览次数:20676 次

打印页面怪事,求解! 急!!
//大家好!又来麻烦您帮助了。。。我用一个网上搬来的javascipt来完成打印,
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>打印</title>
<script language="javascript">
function printdiv(printpage)
{
var headstr = "<html><head><title></title></head><body>";
var footstr = "</body>";
var newstr = document.all.item(printpage).innerHTML;
var oldstr = document.body.innerHTML;
document.body.innerHTML = headstr+newstr+footstr;
window.print(); 
document.body.innerHTML = oldstr;
return false;
}
</script>

//同时用了点css,
<style type="text/css">
table.f_01
{
position:absolute;
top:2em;
left:3em

table.f_02
{
position:absolute;
top:2em;
left:13em
}
table.f_03
{
position:absolute;
top:2em;
left:15em
}
</style>

</head>

<body>

<input name="b_print" type="button" class="ipt" onClick="printdiv('div_print');" value="打印">

<div id="div_print">

<table class="f_01">
<tr><td>园区邮局</tr></td>
</table>
<table class="f_02">
<tr><td><%=currenttime.substring(2,4)%></tr></td>
</table>
<table class="f_03">
<tr><td><%=currenttime.substring(5,7)%></tr></td>
</table>

</div>

</body>

</html>

//结果,运行后页面显示完全正确/准确,但一按"打印"钮,打出来的结果就没有了格式,数据/字符 都是按行输出,完全没有了用css排版的效果。 求解!!

或者给个能完成本任务的,本胜感谢!!!

------解决方案--------------------
http://www.jb51.net/article/8277.htm
------解决方案--------------------
var headstr = "<html><head><title></title></head><body>";
var footstr = "</body>";
貌似还缺一个</html>吧
------解决方案--------------------
兄弟,你没弄明白怎么回事吧,打印时输出的那串字符串是不包含你的css样式的,这个打印相当于创建了一个新页面,这个新页面只是加载了你指定div的innerHtml,并没有把当前页面的CSS加载进去,明白?
------解决方案--------------------
把css分散到各个table td 的style里试试
------解决方案--------------------
浏览器是有默认的打印设置的,不靠控件实现精准打印或者灵活打印是不可能的!