2015-11-06 42 views
0

我遇到了一個問題,我現在正在嘗試解決大約一週的問題,並且我決定註冊並詢問您,因爲我所嘗試過的一切都失敗了。在C#中打印WPF - PrintDialog.PrintVisual方法在一臺計算機上工作,並且不能在其他計算機上工作

我有用C#編寫的WPF應用程序。我最關心的是印刷。我有以下一段代碼:

TransformedBitmap tb = new TransformedBitmap(); 
RotateTransform transform = new RotateTransform(90); 

tb.BeginInit(); 
tb.Source = myBitmapImage; 
tb.Transform = transform; 
tb.EndInit(); 

PrintDialog myPrintDialog = new PrintDialog(); 

var dv = new DrawingVisual(); 
using (var dc = dv.RenderOpen()) 
{ 
    dc.DrawImage(tb, new Rect(0, 0, myPrintDialog.PrintableAreaWidth, myPrintDialog.PrintableAreaHeight)); 
} 

myPrintDialog.PrintVisual(dv, "Image"); 

我在幾臺電腦上用不同的Windows版本試過這段代碼。在Win 10,Win 8.1,Win 7上甚至在我以前的Win XP上都能正常工作。

但最近我試圖用Win 8.1在華碩X553M上運行這個應用程序。應用程序在上面給出的代碼後掛起。當然,沒有什麼是印刷的。

我接過仔細看看代碼,我已經調試此代碼,我弄清楚,它停在行:

myPrintDialog.PrintVisual(dv, "Image"); 

文件發送到打印機,但僅此而已發生。有趣的是,在打印機的隊列文件中有狀態:「緩衝」始終不變。我嘗試過使用少量打印機,包括物理和虛擬打印機 - 同樣的東西,永不結束緩衝...... 另一個奇怪的事情是,我測試了打印機,它們似乎工作正常。從打印機驅動程序打印測試頁已成功。

對我來說這很奇怪,因爲 - 正如我所說的 - 代碼在其他計算機上工作正常。 最近幾天我在網上搜索了答案,我已經清理並重置了Windows系統中的打印後臺處理程序服務。我已經安裝了華碩X553M Win 8的所有可能的更新,我甚至更新到Windows 10.我已經爲新的管理員用戶創建了一個新帳戶,因爲我認爲用戶配置文件可能已損壞。沒有什麼改變,仍然沒有打印......應用程序仍然掛在那條線上。

我將不勝感激每一個線索,什麼可能是錯誤的或我應該在哪裏看...我指望你的建議。我必須讓這檯筆記本電腦(或我的應用程序)正常工作。改變筆記本電腦不是一種選擇,所以你是我最後的希望。 在此先感謝!

+0

是否印刷工作? – Contango

+0

感謝您的關注。是的,我已經從Windows圖片瀏覽器測試了打印,並且緩衝時間不到一秒,然後圖片正在打印。 – Dario

回答

相關問題