代码改变世界

Chart图表打印

2013-01-08 15:23  张瀚文zhw  阅读(1865)  评论(1编辑  收藏  举报

在 Windows 窗体的图表控件中,可以打印图表图片。 若要执行此操作,请使用图表控件的 Printing 属性。 该对象用于打印当前数据视图上所有图表控件的元素(滚动条除外)。

可以调用“打印”对话框,也可以在后台打印。 在 Printing 对象中,使用 PrintDocument 属性可以设置打印属性(如页边距)。

如果要打印的图表图片所在的文档还包含其他文档元素,请在 PrintPageEventHandler 内调用 PrintPaint 方法。 必须将 PrintPageEventArgs 对象的 Graphics 属性以及用于定义图表图片在文档中的位置的 Rectangle对象,一起传递给 PrintPaint 方法。

下面的代码演示打印文档中的一行文本,然后打印图表图片,最后打印另一行文本。

// 创建新的PrintDocument
System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument(); 
// 添加一个PrintPageEventHandler的文档
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 
// 打印文档
pd.Print(); 
...
private void pd_PrintPage(object sender, PrintPageEventArgs ev)
{
   // 创建并初始化打印字体 
   System.Drawing.Font printFont = new System.Drawing.Font("Arial", 10); 
   // 创建矩形结构,用于设置图表矩形的位置
   myRec = new System.Drawing.Rectangle(10, 30, 150, 150); 
   // 绘制一行文本,图表,然后另一行文字
   ev.Graphics.DrawString("Line before chart", printFont, Brushes.Black, 10, 10); 
   chart1.Printing.PrintPaint (ev.Graphics, myRec); 
   ev.Graphics.DrawString("Line after chart", printFont, Brushes.Black, 10, 200); 
}