初学者求救 怎样实现打印功能(连接打印机)???

kittrman 2008-05-18 10:25:40
我是初学者 不太懂 各位高手帮帮忙~!
从数据库里调出一些数据,要打印这些数据
怎样连接上打印机啊?像word那样有打印预览就行了
谢谢~!
...全文
194 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
BBCCSDN 2011-03-28
  • 打赏
  • 举报
回复
楼上的coco,你讲的是在页面代码中如何实现打印,能不能讲一讲如何在后台代码中实现?
kittrman 2008-05-18
  • 打赏
  • 举报
回复
非常感谢~!
我知道的太少了,要多多向你们学习
coco_ke 2008-05-18
  • 打赏
  • 举报
回复
有几种办法

1.通过Window.Print直接打印

代码以下

<html>
<head>

<script language="javascript">
function preview()
{
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>
</head>
<body>
<center>不被打印部分</center>
<!--startprint-->
<div>被打印部分啦</div>
<!--endprint-->
<center> 不被打印部分</center>
<style>@media Print{.Noprn{DISPLAY:none}}</style>
<p class="Noprn">用css做的不被打印部分</p>
<input class="Noprn" type="button" onclick="preview()" value="打印并预览" name="print" />
<input class="Noprn" type="button" onclick="window.print()" value="打印" />
</body>
</html>

特别注意

substr(start,length)

substring(start,end)

substr是从起始点截取某个长度的字符串,如果没有length那么到最后。

而substring是截取2个位置之间的字符串,如果是0 表示从开始位置

另外indexOf 注意其中O是大写哦

另外看到其中有个style标签,表示定义成了对于打印机来说就不打印

2.个人自己总结的一点经验,利用了webbrowser以及上面的window.print一些技巧

<html>

</head>

<script language="javascript" type="text/javascript">
function preview()
{
bdhtml =window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml="<style media='print' type='text/css'>.noprint{visibility:hidden}</style>"+prnhtml;
prnhtml ="<div class=noprint><input type='button' value='开始打印打印' onclick='printpreview()'></div>"+prnhtml;
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML =prnhtml;
}
  function printpreview(){
   // 打印页面预览
   document.body.insertAdjacentHTML( "beforeEnd", "<object id='idWBPrint' width=0 height=0 classid='clsid:8856F961-340A-11D0-A96B-00C04FD705A2'> </object>");
idWBPrint.ExecWB( 7, 1);
idWBPrint.outerHTML = "";
    
  }
</script>

</head>

<body>
<center>不被打印部分</center>
<!--startprint-->
<div>被打印部分啦</div>
<!--endprint-->
<center> 不被打印部分</center>
<style>@media Print{.Noprn{DISPLAY:none}}</style>
<p class="Noprn">用css做的不被打印部分</p>
<input class="Noprn" type="button" onclick="preview()" value="切换到打印页面" name="print" />
</body>
</html>

这里表示,点击了“切换到打印页面”后这个按钮那么就生产了打印的页面,其他的都不显示了,同时给这个打印页面添加一个按钮,这个按钮利用了webbrowser对象提供的打印预览功能。同时添加了一个css的样式,让这个按钮在打印机环境下不显示
emenwin 2008-05-18
  • 打赏
  • 举报
回复
使用水晶报表最简单

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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