none
C# 打印窗体内容 RRS feed

  • 问题

  • C# 打印窗体内容时,先把内容画到画布上,然后打印出来,但是打印的内容比实际窗体上的要小,字体也是要小, 我打印panel 也是一样。我打印pictureBox1 也是一样。都是比比实际窗体上的要小。。 这是为什么啊?有人说这是图像显示和打单位不同,那到底他们之间是什么关系?要怎么转换?知道的大大帮帮忙啊!!!搞了好几天了!!!

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)

    {

    e.Graphics.DrawImage(pictureBox1.Image, 0, 100, pictureBox1.Width, pictureBox1.Height); }

    private void button1_Click(object sender, EventArgs e)

    { printDocument1.Print(); }

    2011年6月19日 6:20

答案

  • 请直接用 PrintWindow API,它可以把特定句柄的窗体内容复制到一个 DC 句柄上,然后直接保存为 BMP 后打印。这样会保留其所有的原始尺寸。PrintDocument 可能会对原始图片进行调整以适应 Page Layout,所以如果您需要保留原始尺寸,请直接保存为图片了打印。
    Mark Zhou
    2011年6月20日 6:46