我打算使用PrintDocument
顯示我的C#WinForms應用程序的一部分,但幾乎完成,但打印機出現問題。我用下面的代碼來捕捉我的窗體的圖像,然後打印該圖像,最後我用一個PrintPreviewDialog
顯示打印預覽:以編程方式打印到虛擬打印機(XPS)
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(虛擬打印機文件?)或任何其他沒有實際打印的方式?
Remove doc.Print(); – 2013-05-06 02:39:37
以及我測試過它,但是當我刪除doc.print時,這意味着什麼都不打印,所以沒有預覽可用,是嗎?我怎樣才能顯示我的預覽? – 2013-05-06 08:28:37