万能打印

     在开发网站或者系统时候,打印功能往往很需要,比如需要打印一篇文章,打印账单,货单等

打印分为普通打印和套打,普通打印就是直接指定要打印的信息,然后打印即可,套打要有一个规定的格式,比如货单,汇款单,套印单等

 

套打的时候,一般我们会指定模板作为背景,然后照着背景布局页面,将要打印的信息指定到要打印的位置上,然后就打印就行了

上次说到套打存折的时候用到了lodop控件,其实打印的方法很多,比如使用IE自带的打印,或者是IE自带的浏览器控件webBrowse,,DLPrinter,墙外打印控件(QWPrint)都可以

IE自带的打印直接window.print();就可以,也可以通过它打印页面中某一框架内的内容比如

 

View Code
<table border="0" align="center" cellpadding="0" cellspacing="0" background="Images/book.bmp" style="width: 818px; height: 544px">
  
<tr>
    
<td width="32" height="189">&nbsp;</td>
    
<td colspan="2">&nbsp;</td>
    
<td style="width: 20px">&nbsp;</td>
  
</tr>
  
<tr>
    
<td height="264" rowspan="2">&nbsp;</td>
    
<td width="666" height="25" style="font-weight: bold; color: #0066cc">当前位置:系统查询 &gt; 借阅信息打印 &gt;&gt;&gt; </td>
    
<td width="58" align="center" class="word_Green"><href="#" onClick="parent.contentFrame.focus();window.print();">打印</a></td>
    
<td rowspan="2" style="width: 20px">&nbsp;</td>
  
</tr>
  
<tr>
    
<td height="240" colspan="2" align="center" valign="middle" bgcolor="#FFFFFF"><iframe name="contentFrame" src="content.aspx"  frameborder="0" width="100%" height="100%" style="width: 89%; height: 97%"></iframe></td>
  
</tr>
  
<tr>
    
<td style="height: 21px">&nbsp;</td>
    
<td colspan="2" style="height: 21px">&nbsp;</td>
    
<td style="width: 20px; height: 21px">&nbsp;</td>
  
</tr>
</table>

 

我们只需要指定框架焦点,然后打印

parent.contentFrame.focus();window.print();

 

WebBrowse是一个简单的浏览器程序,支持打印,后退,前进,刷新,另存为,保存等功能,可以到网上搜一下方法,在这里,我们来说下,怎么使用它打印

首先,就像实例化对象一样,创建它,在<head></head>标签中加入

<object id="WebBrowser" classid="ClSID:8856F961-340A-11D0-A96B-00C04Fd705A2" width="0" height="0">

</object>

然后调用其方法打印就行了,支持直接打印,打印预览,页面设置等

<a href="#" onClick="document.all.WebBrowser.Execwb(7,1)">打印预览</a>

<a href="#" onClick="document.all.WebBrowser.Execwb(6,1)">打印</a>

<a href="#" onClick="document.all.WebBrowser.Execwb(6,6)">直接打印</a>

<a href="#" onClick="document.all.WebBrowser.Execwb(8,1)">页面设置</a>

…………

他们默认就是打印body中的内容,打印的时候,可以灵活选择要打印的信息,赋给body即可,如果不希望有些内容在打印的时候显示出来,可以将其隐藏

     <style>

@media print{

div{display:none}

td,table{

     background:display:none;

}

}

</style>

或者先导出到Word或者Excel

    private void Export(string FileType, string FileName)

    {

        Response.Charset = "GB2312";

        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

        Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8).ToString());

        Response.ContentType = FileType;

        this.EnableViewState = false;

        StringWriter tw = new StringWriter();

        HtmlTextWriter hw = new HtmlTextWriter(tw);

        GridView1.RenderControl(hw);

        Response.Write(tw.ToString());

        Response.End();

}

然后调用word或者Excel自带的打印功能去打印...

posted @ 2011-05-04 16:06  双魂人生  阅读(880)  评论(0编辑  收藏  举报