【发布时间】:2013-04-29 11:56:33
【问题描述】:
我将使用PrintDocument 显示我的 C# WinForms 应用程序的一部分,它几乎完成了,但是我的打印机有问题。我使用以下代码捕获表单的图像,然后打印此图像,最后我使用PrintPreviewDialog 显示打印预览:
PrintDocument doc = new PrintDocument();
doc.PrintPage += doc_PrintPage;
doc.Print();
printPreviewDialog1.Document = doc;
printPreviewDialog1.ShowDialog();
这是doc_PrintPage函数:
Bitmap bmp = new Bitmap(tabControl1.Width, tabControl1.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
tabControl1.DrawToBitmap(bmp, new Rectangle(0, 0, tabControl1.Width, tabControl1.Height));
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
e.Graphics.DrawImage((Image)bmp, 0, 0);
当调用doc.print() 函数时,Microsoft OneNote 程序会打开并显示我的打印表单,同时PrintPreviewDialog 控件会打开一个包含我的预览的新表单。
我将进行静默打印,因此不会打开任何打印机程序(例如设置为我的默认打印机的 OneNote)或没有打开物理打印机(我认为如果我的用户连接了物理打印机,页面将实际打印出来!这正是我想要的)。我只想显示打印预览而不进行任何打印,有什么方法可以打印到 XPS(虚拟打印机文件?)或任何其他不执行实际打印的方式?
【问题讨论】:
-
好吧,我已经测试过了,但是当我删除 doc.print 时,这意味着什么都没有打印,所以没有预览可用,是吗?如何显示我的预览?
标签: c# winforms printing print-preview