如何让打印机自动分页打印呢?

Tungus 2002-09-30 11:55:25
用ASP编写分页程序后。我想打印,但是如何让打印机自动分页打印呢?
...全文
1960 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
fokker 2002-10-10
  • 打赏
  • 举报
回复
加一个按钮,用来显示所有的纪录,然后再打印。
Tungus 2002-10-10
  • 打赏
  • 举报
回复
是不是不能实现自动分页打印
steven007 2002-10-10
  • 打赏
  • 举报
回复
引用:
http://www.csdn.net/expert/topic/1041/1041277.xml?temp=.120846

也没有什么特别的方法。这里给你两种思路,你自己看着那种更适合你。

第一种是使用袁飞的打印控件,但是好像不能满足你的要求。方法是用asp从数据库检索出符合条件的数据之后,动态生成客户端vbscript代码,从而控制打印控件,进行打印操作。

第二种比较方便,唯一的缺陷是要手动设置“页面设置”。采用CSS。这里提几个关键点。
定义一下样式:
@media print {.print_unvisiable{display: none;}}
@media print {.print_visiable{display:"";}}
@media screen {.screen_unvisiable{display:none;}}
@media screen {.screen_visiable{display:"";}}
.page{page-break-before:always}
这些样式主要控制:
打印隐藏
打印显示
屏幕隐藏
屏幕显示
分页
然后你可以用asp动态生成所有的可能需要打印的记录集报表;并且用样式来控制他们是在打印机中打出来还是在屏幕显示。
比如一个“打印”按钮,你可能只希望他在屏幕上显示,不希望他在打印的时候也打印出来,你可以用下面代码:
<input type="button" name="print" class="print_unvisiable" onclick="javascript:window.print();return false;">

对于你希望的只打印已选择的记录,你可以用客户端javascript来动态控制该记录所在行(html代码)的样式(class)。比如需要打印全部时,就把所有记录所在行的样式设为print_visiable。

这里的缺点是需要手动设置页眉和纸张的横向还是纵向。但无需控件。
好像需要ie5.0以上版本支持。

有错误的地方,请大家多多指教。
csdnyong 2002-10-10
  • 打赏
  • 举报
回复
那怎么 分也
Tungus 2002-10-09
  • 打赏
  • 举报
回复
如果所有的记录是分散在各个页面里的呢。比如
1 2 3 4 5 .....
如何让他自动呢
stady 2002-10-09
  • 打赏
  • 举报
回复
已经实现了分页显示啦,直接打印网页不行吗?可以把不想打印的元素隐掉
cen8535 2002-10-09
  • 打赏
  • 举报
回复
用下面的代码是一下:
<script language=vbscript>
<!--
sub B0_onclick
window.print()
end sub

sub b1_onclick
document.WebBrowser.ExecWB 7,1
end sub

sub B2_onclick
document.WebBrowser.ExecWB 8,1
end sub

sub window_onbeforeprint

end sub
-->
</script>
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>
<LINK REL=stylesheet HREF="print.css" TYPE="text/css">
<body>
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">
</object>
<form method="POST" action="--WEBBOT-SELF--">
<table width="900" height="216" border="1" cellpadding="0" cellspacing="0" bordercolor="#111111" id="AutoNumber1" style="border-collapse: collapse" >
<tr >
<td width="12%">第1列</td>
<td width="12%">第2列</td>
<td width="12%">第3列</td>
<td width="12%">第4列</td>
<td width="13%">第5列</td>
<td width="13%">第6列</td>
<td width="13%">第7列</td>
<td width="10%">第8列</td>
</tr>
<%
set conn=server.createobject("ADODB.Connection")
set rs=server.createobject("ADODB.Recordset")
conn.open "Provider=SQLOLEDB.1;Data Source=(local);Initial Catalog=pubs;User ID=sa;Password=;"
rs.open "Select * from roysched ",conn,3
'on error resume next
for i=1 to rs.recordcount
if j=25 then
j=1 %>
<tr>
</tr>
<tr class="screen_unvisiable" style="page-break-before:always">
<td width="12%">第1列</td>
<td width="12%">第2列</td>
<td width="12%">第3列</td>
<td width="12%">第4列</td>
<td width="12%">第5列</td>
<td width="12%">第6列</td>
<td width="12%">第7列</td>
<td width="12%">第8列</td>
</tr>
<% else
j=j+1
end if
%>

<tr>
<td width="12%">第<%=i%>行</td>
<td width="12%"><%=rs("title_id")%></td>
<td width="12%"><%=rs("lorange")%></td>
<td width="12%"><%=rs("hirange")%></td>
<td width="13%"><%=rs("royalty")%></td>
<td width="13%"></td>
<td width="13%"></td>
<td width="10%"></td>
</tr>
<%
rs.movenext
next
%>
</table>
<p>
<input type="button" name="B0" class="print_unvisiable" value="打印">
<input type="button" value="打印预览" class="print_unvisiable" name="B1" >
<input type="button" name="B2" value="打印设置" class="print_unvisiable" >

</p>
</form>

</body>

</html>
nittystone 2002-10-07
  • 打赏
  • 举报
回复
问题就是不知道什么时候。什么原因??????
fokker 2002-10-06
  • 打赏
  • 举报
回复
nittystone(没有想法):
但这样做有时没有用处?什么时候?
lhafly 2002-10-01
  • 打赏
  • 举报
回复
有谁研究了asp打印的问题的
xjbx 2002-09-30
  • 打赏
  • 举报
回复
加下面的代码
<STYLE>
P {page-break-after: always}
</STYLE>
csdnyong 2002-09-30
  • 打赏
  • 举报
回复
还有什么好办法吗??
sunxiaoli 2002-09-30
  • 打赏
  • 举报
回复
同意楼上的兄弟
csdnyong 2002-09-30
  • 打赏
  • 举报
回复
我也在这坐
打印机会自动分页的 不过就是没表头
我现在是人为分页 自己加表头
csdnyong 2002-09-30
  • 打赏
  • 举报
回复
关注::
要不要每一页都要表头呢??
ufqj 2002-09-30
  • 打赏
  • 举报
回复
我也在找这方面的资料,有了也请告诉我一下!谢谢了!
nittystone 2002-09-30
  • 打赏
  • 举报
回复
fokker(独孤龙) 的可以实现。

但这样做有时没有用处。郁闷。。。
fokker 2002-09-30
  • 打赏
  • 举报
回复
一个有表头打印的例子:

<HTML>
<HEAD>
<TITLE>有表头的打印的例子</TITLE>
<SCRIPT LANGUAGE=javascript>
<!--
function window_onbeforeprint() {
var objs=document.all("fokker");
alert(objs.length);
for(var i=0;i<objs.length;i++)
objs[i].style.display="";
}

function window_onafterprint() {
var objs=document.all("fokker");
for(var i=0;i<objs.length;i++)
objs[i].style.display="none";
}
//-->
</SCRIPT>
</HEAD>
<BODY LANGUAGE=javascript onbeforeprint="return window_onbeforeprint()" onafterprint="return window_onafterprint()">
<TABLE cellSpacing=1 cellPadding=1 width="75%" border=1>
<TR>
<TD>表头</TD>
<TD>表头</TD></TR>
<TR>
<TD>内容</TD>
<TD>内容</TD></TR>
<TR>
<TD>内容</TD>
<TD>内容</TD></TR>
<TR>
<TD>内容</TD>
<TD>内容</TD></TR>
<TR id="fokker" name="fokker" style="display:none;page-break-before:always">
<TD>表头</TD>
<TD>表头</TD></TR>
<TR>
<TD>内容</TD>
<TD>内容</TD></TR>
<TR>
<TD>内容</TD>
<TD>内容</TD></TR>
<TR>
<TD>内容</TD>
<TD>内容</TD></TR>
<TR id="fokker" name="fokker" style="display:none;page-break-before:always">
<TD>表头</TD>
<TD>表头</TD></TR>
<TR>
<TD>内容</TD>
<TD>内容</TD></TR></TABLE>
</BODY>
</HTML>
csdnyong 2002-09-30
  • 打赏
  • 举报
回复
关注
csdnyong 2002-09-30
  • 打赏
  • 举报
回复
解释一下 ,是什么效果
加载更多回复(1)

28,408

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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