我将使用 显示我的 C# WinForms 应用程序的一部分PrintDocument
,它几乎完成了,但是我的打印机有问题。我使用以下代码捕获表单的图像,然后打印此图像,最后我使用 aPrintPreviewDialog
显示打印预览:
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(虚拟打印机文件?)或任何其他不执行实际打印的方式?