私が見つけてデータグリッドビューを印刷するために知っている解決策のほとんどは、それをビットマップイメージに変換してから、印刷用に送信することに基づいています。MSDNでさえ同じことを言っています。
では、どうすればコンテンツのみを印刷できますか?各行を1つずつ読み取り、文字列配列などに保存する必要がありますか?
編集:@Robertアイデアは良いですが、これをどのように正確に行うことができますか?
同様のプロジェクトで私が思いついた解決策の1つは、データをExcelスプレッドシートにエクスポートして、ユーザーがファイルを保存するか、後で印刷するかを選択できるようにすることです。そのルートに行きたいかどうかはわかりませんが、それはオプションです。
別の解決策は、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();