【问题标题】:How to generate a print preview in winforms c#如何在winforms c#中生成打印预览
【发布时间】:2020-07-22 05:32:36
【问题描述】:

我正在尝试从 c# Winforms 中的表单生成打印预览。 已经添加了 PrintPreviewDialog 和 PrintDocument 以及一些代码:

using System.Drawing.Printing;

private Bitmap myImage;

private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
     e.Graphics.DrawImage(myImage, 0, 0);
}
private void Button_Click(object sender, EventArgs e)
{
     Graphics g = this.CreateGraphics();
     myImage = new Bitmap(this.Size.Width, this.Size.Height, g);
     Graphics mg = Graphics.FromImage(myImage);
     mg.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, this.Size);
     printPreviewDialog1.ShowDialog();
}

单击按钮后,我得到打印预览,并且这个“文档不包含任何页面”。 有人知道为什么会这样吗?我错过了什么吗?

【问题讨论】:

    标签: c# winforms print-preview


    【解决方案1】:

    在显示对话框之前,您需要将PrintDocument 附加到打印预览对话框。

    在您的示例中,在 Button_Click() 的这一行之前:

    printPreviewDialog1.ShowDialog();
    

    您需要添加(假设printDocument1 是您的PrintDocument 的名称):

    printPreviewDialog1.Document = printDocument1;
    

    请参阅文档中针对 PrintPreviewDialog (.NET 4.8)PrintDocument (.NET 4.8) 给出的示例,了解您可能需要进行的其他调整以获得所需的预览。

    【讨论】:

      猜你喜欢
      • 2016-01-03
      • 1970-01-01
      • 2011-05-13
      • 2011-01-15
      • 2011-01-20
      • 2019-08-12
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      相关资源
      最近更新 更多