打印DataGridView而不将其转换为位图

时间:2013-01-25 17:55:06

标签: c# .net c#-4.0 c#-3.0 c#-2.0

我发现并且我知道用于打印数据网格视图的大多数解决方案都是基于将其转换为位图图像然后将其发送以进行打印。甚至MSDN都在说同样的话。

那么我怎样才能打印出唯一的内容?我是否必须逐个读取每一行并将它们保存在字符串数组或类似的内容中?

编辑: @Robert 这个想法很好,但我究竟能做到这一点呢?

2 个答案:

答案 0 :(得分:0)

我提出的类似项目的一个解决方案是将数据导出到Excel电子表格,让用户可以选择保存文件或稍后打印。但是,我不确定你是否想要走这条路,但这是一个选择。

答案 1 :(得分:0)

另一种解决方案是使用Response.Write创建输出文件,如下所示:

                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                Response.Buffer = true;
                Response.ContentType = "application/vnd.ms-excel";
                Response.Write(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">");
                Response.AddHeader("Content-Disposition", "attachment;filename=Reports.xls");
                //sets font
                Response.Write("<font style='font-size:10.0pt; font-family:Calibri;'>");
                Response.Write("<br/><br/><br/>");
Response.Write("<table border='1' bgColor='#ffffff' borderColor='#000000' cellSpacing='0' cellPadding='0' style='font-family:Calibri; background:white;'>");
    ...More output data ...            // Send to save
                Response.Write("</table>");
                Response.Flush();
                Response.End();