我发现的大多数打印数据网格视图的解决方案都是基于将其转换为位图图像,然后将其发送以进行打印。甚至 MSDN 也在说同样的话。
那么我怎样才能打印唯一的内容呢?我是否必须逐行读取每一行并将它们保存在字符串数组或类似的东西中?
编辑:@Robert 这个想法很好,但我到底该怎么做呢?
另一种解决方案是使用 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();
我为类似项目提出的一种解决方案是将数据导出到 Excel 电子表格,让用户可以选择保存文件或稍后打印。但是,我不确定您是否想走那条路,但这是一个选择。