【发布时间】:2014-10-22 07:54:31
【问题描述】:
我只想打印来自 C# 应用程序的活动窗口。使用 CopyFromScreen() 不起作用,因为它会截取屏幕截图,并且该窗口可能会被其他出现的临时窗口部分隐藏。所以我尝试了 PrintWindow():
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.PageScale = 10.0f;
Graphics g = e.Graphics;
PrintWindow(this.Handle, g.GetHdc(), 0);
}
无论我使用哪种 PageScale,这都会生成一个小邮票大小的窗口打印输出。 有什么想法吗?
编辑 这就是诀窍:
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics myGraphics = CreateGraphics();
var bitmap = new Bitmap(Width, Height, myGraphics);
DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
e.Graphics.DrawImage(bitmap, 0, 0);
}
【问题讨论】:
标签: c# printing screenshot scaling