关于客户端打印 高手请进

时间:2021-08-24 08:32:16
在asp.net工程中实现画图功能 ,如何调用客户端的打印技术去呢??
在vb.net 的应用程序可以这样实现
 Dim pd As New PrintDocument()

    Dim PrintDoc As New PrintDocument()

Private Sub PrintPic(ByVal sender As Object, ByVal ev As PrintPageEventArgs)

        Dim drawFont As New Font("Arial", 9)
        Dim drawBrush As New SolidBrush(Color.Black)
        Dim drawFormat As New StringFormat()
 x = 1.5 * 567 / 15
        y = 3.1 * 567 / 15
      rawString = strUserName                                            ev.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat)
end sub 
这段程序能够转换到asp.net中吗?/如何调用客户端的打印机打印它

19 个解决方案

#1


up

#2


在IE中打印可采用以下方法:

1.在aspx中定义一个DIV,将需要打印的内容放在一个DIV中,如:

<div id="m_printpage">   

     <table border="0"  width="100%">

         <tr>

         <td>

        <table align="center" border="0" cellpadding="5" cellspacing="1" 

            width="100%" class="test">

          <tr bgcolor="#CDD9F1" align="center"> 

            <td height="22" colspan="2" valign="middle">193业务代理商垫付凭证</td>

          </tr>

        </table>

         </td>

    </tr>

    </table>

</div>

2.在apsx中定义一个按钮,按下事件触发
printpage('m_printpage');

3.Printpage方法如下(javascript):

function printpage(m_printpage1){

   var newstr = document.all.item(m_printpage1).innerHTML;

   var oldstr = document.body.innerHTML;

   document.body.innerHTML = newstr;

   window.print(); 

   document.body.innerHTML = oldstr;

   return false;

}

#3


楼上肯定有分,其他人还有没有办法?我想直接就把我的画图输出到客户端的打印机

#4


想直接就把我的画图输出到客户端的打印机

#5


up

#6


http://www.microsoft.com/China/Community/TechZone/TechArticle/TechDoc/xmlwebreport.asp

#7


up

#8


up

#9


up

#10


<OBJECT id=WebBrowser height=0 width=0 
classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 VIEWASTEXT>
<PARAM NAME="ExtentX" VALUE="26">
<PARAM NAME="ExtentY" VALUE="26">
<PARAM NAME="ViewMode" VALUE="0">
<PARAM NAME="Offline" VALUE="0">
<PARAM NAME="Silent" VALUE="0">
<PARAM NAME="RegisterAsBrowser" VALUE="0">
<PARAM NAME="RegisterAsDropTarget" VALUE="1">
<PARAM NAME="AutoArrange" VALUE="0">
<PARAM NAME="NoClientEdge" VALUE="0">
<PARAM NAME="AlignLeft" VALUE="0">
<PARAM NAME="NoWebView" VALUE="0">
<PARAM NAME="HideFileNames" VALUE="0">
<PARAM NAME="SingleClick" VALUE="0">
<PARAM NAME="SingleSelection" VALUE="0">
<PARAM NAME="NoFolders" VALUE="0">
<PARAM NAME="Transparent" VALUE="0">
<PARAM NAME="ViewID" VALUE="{0057D0E0-3573-11CF-AE69-08002B2E1262}">
</OBJECT>
<A onclick="document.all.WebBrowser.ExecWB(8,1)" href="#"><FONT style="FONT-SIZE: 12px">
页面设置</FONT></A> <A onclick="document.all.WebBrowser.ExecWB(7,1)" href="#"><FONT style="FONT-SIZE: 12px">
打印预览</FONT></A> <A onclick="document.all.WebBrowser.ExecWB(6,1)" href="#"><FONT style="FONT-SIZE: 12px">
打印本页</FONT></A>
你在aspx页面的html中添加后再回到设计,再到HTML的时候会出现多出
<PARAM NAME="Location" VALUE="">
如果,Value没有设置有效的地址就会出现错误,这个表示的是打印地址上的数据(好象是这样!)试试,我的没有问题!

#11


mark

#12


这个可以还是可以,以前在网上看过(自己也做过)在客户端打图表什么的,不过是要自己编个组件,而且在客户端得安装.net的运行环境,比较麻烦,因为它要调用.NET的打印对话框和预览框.所以我不是很喜欢用这种方法!

#13


没什么好办法

一是用IE的打印
二就是自已写组件下到客户端打印。

#14


up

#15


'1。通过调用javascript的函数:把以下保存为.htm 文件你可以看到该函数的效果:
'
'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="JavaScript">
function printpage(m_printpage1){

   var newstr = document.all.item(m_printpage1).innerHTML;

   var oldstr = document.body.innerHTML;

   document.body.innerHTML = newstr;

   window.print(); 

   document.body.innerHTML = oldstr;

   return false;

}
</script>
</head>

<body>
<div id="m_printpage">   

     <table border="0"  width="100%">

         <tr>

         <td>

        <table align="center" border="0" cellpadding="5" cellspacing="1" 

            width="100%" class="test">

          <tr bgcolor="#CDD9F1" align="center"> 

            <td height="22" colspan="2" valign="middle">193业务代理商垫付凭证</td>

          </tr>

        </table>

         </td>

    </tr>

    </table>

  <form name="form1" method="post" action="">
    <input type="submit" name="Submit" value="提交" onClick="printpage('m_printpage')">
  </form>
</div>
</body>
</html>



#16


2.这个方法使用CSS你可以把你不想打印的东西全都屏蔽掉(使用<div class="notptn"> 你的东东</div>),那你就可以打印你想要的东西了。
<style>
@media print {
   .ptn {display:block;}   
   .notptn {display:none;}
}
</style>
<div class="notptn"> 不打印</div>

<div class="ptn"> 打印</div>

<A href="javascript:doprint()">【打印该页】</A>

放到一个页面打印预览看一下。。。。。

。。。。。。。。。。。。。。。。。。
你重要在aspx页面将你的打印按钮 的CssClass="notptn"即可

#17


关注

#18


谢谢 chenee543216(奋斗成就男人!)   我在研究一下稍候接贴

#19


up

#1


up

#2


在IE中打印可采用以下方法:

1.在aspx中定义一个DIV,将需要打印的内容放在一个DIV中,如:

<div id="m_printpage">   

     <table border="0"  width="100%">

         <tr>

         <td>

        <table align="center" border="0" cellpadding="5" cellspacing="1" 

            width="100%" class="test">

          <tr bgcolor="#CDD9F1" align="center"> 

            <td height="22" colspan="2" valign="middle">193业务代理商垫付凭证</td>

          </tr>

        </table>

         </td>

    </tr>

    </table>

</div>

2.在apsx中定义一个按钮,按下事件触发
printpage('m_printpage');

3.Printpage方法如下(javascript):

function printpage(m_printpage1){

   var newstr = document.all.item(m_printpage1).innerHTML;

   var oldstr = document.body.innerHTML;

   document.body.innerHTML = newstr;

   window.print(); 

   document.body.innerHTML = oldstr;

   return false;

}

#3


楼上肯定有分,其他人还有没有办法?我想直接就把我的画图输出到客户端的打印机

#4


想直接就把我的画图输出到客户端的打印机

#5


up

#6


http://www.microsoft.com/China/Community/TechZone/TechArticle/TechDoc/xmlwebreport.asp

#7


up

#8


up

#9


up

#10


<OBJECT id=WebBrowser height=0 width=0 
classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 VIEWASTEXT>
<PARAM NAME="ExtentX" VALUE="26">
<PARAM NAME="ExtentY" VALUE="26">
<PARAM NAME="ViewMode" VALUE="0">
<PARAM NAME="Offline" VALUE="0">
<PARAM NAME="Silent" VALUE="0">
<PARAM NAME="RegisterAsBrowser" VALUE="0">
<PARAM NAME="RegisterAsDropTarget" VALUE="1">
<PARAM NAME="AutoArrange" VALUE="0">
<PARAM NAME="NoClientEdge" VALUE="0">
<PARAM NAME="AlignLeft" VALUE="0">
<PARAM NAME="NoWebView" VALUE="0">
<PARAM NAME="HideFileNames" VALUE="0">
<PARAM NAME="SingleClick" VALUE="0">
<PARAM NAME="SingleSelection" VALUE="0">
<PARAM NAME="NoFolders" VALUE="0">
<PARAM NAME="Transparent" VALUE="0">
<PARAM NAME="ViewID" VALUE="{0057D0E0-3573-11CF-AE69-08002B2E1262}">
</OBJECT>
<A onclick="document.all.WebBrowser.ExecWB(8,1)" href="#"><FONT style="FONT-SIZE: 12px">
页面设置</FONT></A> <A onclick="document.all.WebBrowser.ExecWB(7,1)" href="#"><FONT style="FONT-SIZE: 12px">
打印预览</FONT></A> <A onclick="document.all.WebBrowser.ExecWB(6,1)" href="#"><FONT style="FONT-SIZE: 12px">
打印本页</FONT></A>
你在aspx页面的html中添加后再回到设计,再到HTML的时候会出现多出
<PARAM NAME="Location" VALUE="">
如果,Value没有设置有效的地址就会出现错误,这个表示的是打印地址上的数据(好象是这样!)试试,我的没有问题!

#11


mark

#12


这个可以还是可以,以前在网上看过(自己也做过)在客户端打图表什么的,不过是要自己编个组件,而且在客户端得安装.net的运行环境,比较麻烦,因为它要调用.NET的打印对话框和预览框.所以我不是很喜欢用这种方法!

#13


没什么好办法

一是用IE的打印
二就是自已写组件下到客户端打印。

#14


up

#15


'1。通过调用javascript的函数:把以下保存为.htm 文件你可以看到该函数的效果:
'
'
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="JavaScript">
function printpage(m_printpage1){

   var newstr = document.all.item(m_printpage1).innerHTML;

   var oldstr = document.body.innerHTML;

   document.body.innerHTML = newstr;

   window.print(); 

   document.body.innerHTML = oldstr;

   return false;

}
</script>
</head>

<body>
<div id="m_printpage">   

     <table border="0"  width="100%">

         <tr>

         <td>

        <table align="center" border="0" cellpadding="5" cellspacing="1" 

            width="100%" class="test">

          <tr bgcolor="#CDD9F1" align="center"> 

            <td height="22" colspan="2" valign="middle">193业务代理商垫付凭证</td>

          </tr>

        </table>

         </td>

    </tr>

    </table>

  <form name="form1" method="post" action="">
    <input type="submit" name="Submit" value="提交" onClick="printpage('m_printpage')">
  </form>
</div>
</body>
</html>



#16


2.这个方法使用CSS你可以把你不想打印的东西全都屏蔽掉(使用<div class="notptn"> 你的东东</div>),那你就可以打印你想要的东西了。
<style>
@media print {
   .ptn {display:block;}   
   .notptn {display:none;}
}
</style>
<div class="notptn"> 不打印</div>

<div class="ptn"> 打印</div>

<A href="javascript:doprint()">【打印该页】</A>

放到一个页面打印预览看一下。。。。。

。。。。。。。。。。。。。。。。。。
你重要在aspx页面将你的打印按钮 的CssClass="notptn"即可

#17


关注

#18


谢谢 chenee543216(奋斗成就男人!)   我在研究一下稍候接贴

#19


up

#20