我有一个名为backbufferGraphics的BufferedGraphics,我想打印出使用PrintDialog进行缓冲的内容,这是我的代码,但它不起作用:
private print()
{
printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(printDocument1_PrintPage);
printDialog1.Document = printDocument1;
printDialog1.AllowSelection = true;
printDialog1.AllowSomePages = true;
printDialog1.ShowDialog();
}
void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
DrawToPrint(e.Graphics);
}
private void DrawToPrint(Graphics _Gd)
{
backbufferGraphics.Render(_Gd);
}
谢谢!
答案 0 :(得分:1)
首先要在图像中设置缓冲图形,然后打印图像:
Bitmap bmp = new Bitmap();
int X = e.X - bmp.Width/2;
int Y = e.Y - bmp.Height/2;
// créer et initialiser le BufferedGraphics
BufferedGraphics bg =
BufferedGraphicsManager.Current.Allocate(this.CreateGraphics(),
ClientRectangle);
Graphics g = bg.Graphics;
g.Clear(SystemColors.Control);
g.DrawImage(bmp, new Point(X, Y));
bg.Render();
g.Dispose();
bg.Dispose();
//save bmp as file