我已經在加載轉換爲HTML/CSS的XML的WinForms應用程序上擁有WebBrowser控件。看起來很美,如果我只想在那裏或在一個普通的瀏覽器中查看它。WebBrowser控件將不會從C#打印
當窗體加載時,它應該導航到文件,然後當OnDocumentCompleted事件觸發時,它應該在註冊表中設置頁眉,頁腳和默認打印機名稱,然後調用Print()用戶已指定。
我已經通過調試器運行了它,它在OnDocumentCompleted事件中調用了webBrowser.Print()正確的次數。 Nothing不應該是null,WebBrowser控件上的Visible也是如此,AllowNavigation也是如此。是的,打印機已打開並可通過網絡訪問。完全相同的代碼在項目的其他地方工作,但不在這裏。
還有什麼可能導致這個地獄般的控制忽略我的打印命令?
理想情況下,我希望整個事情都隱藏在屏幕外,因爲這意味着使用Windows Scheduler運行,並且用戶永遠不應該看到它。我已經讀過,控制需要可見,但是,直到我解決這個第一個問題時,可以等待。
編輯:我的OnDocumentCompleted事件處理程序的最後兩行將DialogResult設置爲OK並關閉了窗體。刪除對Close()的調用讓它打印出來,所以我猜測它在表單關閉和WebBrowser控件處理之前沒有進入打印假脫機程序。
只是設置一個任意的時間限制等待關閉之前的等待,有什麼辦法來告訴它什麼時候完成打印?
這取決於作業到達假脫機程序的時間,假定您不需要處理大型作業並且打印系統可用性很高。如果你必須這樣做,你可以把一個線程睡30,然後關閉窗體。根據打印作業狀態進行更高級別的控制,以保證打印作業。 – Yuan 2011-05-03 21:24:38