关于打印页面指定位置的问题

gqgqliu 2002-04-19 05:32:00
请问如何打印在页面中我只想打印的那一部分,打印部分是事先设计好的,而同一页面中的其他部分则不在打印区内。请给出具体代码,谢谢!
...全文
144 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lirc 2002-04-22
  • 打赏
  • 举报
回复
如果打印的内容很多,需要分页,那么,第二页及以后的页能否加上表头?
Andrawu 2002-04-22
  • 打赏
  • 举报
回复
先用鼠标在页面上选择一个范围,如选择整个table范围,将打印整个table的内容;选择tr范围,将打印tr内容。
fokker 2002-04-22
  • 打赏
  • 举报
回复
wb是一个ActiveX对象,是windows自己带的,它的classid是固定的,每台机器都一样,除非微软对他做了改动。
gqgqliu 2002-04-22
  • 打赏
  • 举报
回复
AndraWu兄的程序我运行了一下,有错误,是函数的错误,我检查了也没发现错误呀!另外,打印是如何进行的呢?是不是先用鼠标在页面上选择一个范围,然后再打印选择的范围的内容呢?
gqgqliu 2002-04-22
  • 打赏
  • 举报
回复
独孤兄,小弟才疏学浅,有个问题,wb对象是javascript自带的对象吗?classid的值是固定的吗?还是根据机器的不同而不同呢?
gqgqliu 2002-04-22
  • 打赏
  • 举报
回复
多谢两位的指点,我给两位结帐,各得30分。欢迎下次再来,谢谢!
Andrawu 2002-04-19
  • 打赏
  • 举报
回复
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<DIV align=center>
<TABLE border=1 borderColor=#000000 cellPadding=0 cellSpacing=0 style="HEIGHT: 107px; WIDTH: 169px">
<TBODY>
<TR>
<TD> 1212</TD>
<TD> 333</TD>
<TD> ddd</TD>
<TD> fff</TD>
<TD> tttt</TD></TR>
<TR>
<TD> 1212</TD>
<TD> 1231</TD>
<TD> 131</TD>
<TD> 313</TD>
<TD> 1313</TD></TR>
<TR>
<TD> dsfsad</TD>
<TD> fasdf</TD>
<TD> dsfs</TD>
<TD>asd </TD>
<TD> adsfsdf</TD></TR>
<TR>
<TD> asdf</TD>
<TD> asdf</TD>
<TD> asdf</TD>
<TD> adsf</TD>
<TD> asdf</TD></TR>
<TR>
<TD> adf</TD>
<TD> adsf</TD>
<TD> adsf</TD>
<TD> asdf</TD>
<TD> asdf</TD></TR></TBODY></TABLE></DIV></HTML>
<input type="button" value="选择Table或Tr或Td后打印" onclick="selPrint();">

<script language="javascript">
var win ;
function selPrint(){
var el = null
var selObj = document.selection.createRange();
var selType = document.selection.type;
if (selObj.parentElement != null) {
el =getEl("TD",selObj.parentElement())
if (!el) el = getEl("TR",selObj.parentElement())
if (!el) el = getEl("TABLE",selObj.parentElement())
if (el!=null){
doc ="<TABLE "+(((el.border=="")||(el.border=="0"))?"class=\"NOBORDER\"":"")+(el.cellPadding!=""?"cellPadding=\""+el.cellPadding+"\" ":"")+(el.cellSpacing!=""?"cellSpacing=\""+el.cellSpacing+"\" ":"")+(el.border!=""?"border=\""+el.border+"\" ":"")+(el.borderColor!=""?"bordercolor=\""+el.borderColor+"\" ":"")+(el.background!=""?"background=\""+el.background+"\" ":"")+(el.background!=""?"bgColor=\""+el.background+"\" ":"")+">" ;
doc = doc+el.innerHTML+"</table>" ;
win= window.open("","");
win.document.writeln(doc) ;
win.print();
}
}
}

function getEl(sTag,start)
{
while ((start!=null) && (start.tagName!=sTag)) start = start.parentElement;
return start;
}

</script>

你可以一下让它选择其它地方打印.
fokker 2002-04-19
  • 打赏
  • 举报
回复
如果你要打印的地方很多,不需要的地方很少,那可以通过设置样式来让那些不打印的地方在打印纸前变成不可见。
<script language="javascript">
window.onbeforeprint=p_before
window.onafterprint=p_after

function printsetup(){
// 打印页面设置
wb.execwb(8,1);
}
function printpreview(){
// 打印页面预览
wb.execwb(9,1);
}
function p_before(){
//noprint是一个不需要打印的元素的id
noprint.style.visibility="hidden"
}

function p_after()
{
alert("打印完毕");
}

function printit()
{
if (confirm('确定打印吗?')) {
window.print();
ashow.style.visibility="visible"
}
}
</script>

<body>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>
fokker 2002-04-19
  • 打赏
  • 举报
回复
<table name=table1>你要打印的内容</table>

是table标签中间的那段html文本。


gqgqliu 2002-04-19
  • 打赏
  • 举报
回复
那table1.innerHTML是什么意思呢
fokker 2002-04-19
  • 打赏
  • 举报
回复
把你想打印的那部分放在一个表格(table1)中:
<script>
var pwin=window.open("","");
pwin.write(table1.innerHTML);
pwin.print();
</script>

87,994

社区成员

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

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