我正在尝试从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();
}
在我点击按钮后,我得到打印预览;文档不包含任何页面";。有人知道为什么会发生这种事吗?我是不是错过了什么?
在显示对话框之前,您需要将PrintDocument
附加到打印预览对话框。
在您的示例中,在Button_Click()
:中的此行之前
printPreviewDialog1.ShowDialog();
您需要添加(假设printDocument1
是您的PrintDocument
的名称(:
printPreviewDialog1.Document = printDocument1;
请参阅PrintPreviewDialog(.NET 4.8(和PrintDocument(.NET 4.8。