2013-08-02 85 views
1

這裏是我想要做的事:批量打印文件

  1. 我有一個簡單的表格,上面有WebBrowser控制與打印(ShowPrintDialog())和打印預覽沿(​​)按鈕,
  2. 在打開窗體時,我加載了一個外部HTML文檔。
  3. 用戶使用提供的打印/打印預覽按鈕打印文檔。

現在的流量是手動的,但有什麼辦法,我可以通過加載一系列文件,在瀏覽器中控制自動完成這個,直接將其發送到打印隊列,無須用戶干預?我不確定是否在技術上批量打印,因爲我沒有發送文件直接打印到打印隊列。請注意,瀏覽器控件在這裏,因爲打印的文檔基本上是WYSWYG,就像在瀏覽器控件上一樣。

+0

我做不明白,如果你一定需要的文件將被加載到webBrowser –

+0

@trippino:是的,因爲該文件有一些JS代碼,它呈現一個圖表,所以我需要在打印的文檔中提到它的WYSWYG。雖然我可以通過編程啓動和關閉窗體(讓屏幕閃爍,但我可以使用它),但主要是將文檔從瀏覽器控件直接發送到打印隊列。 – Kushal

回答

1

您可以簡單地使用的WebBrowserPrint()方法,如果你把它放到DocumentCompleted事件:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    webBrowser1.Print(); 
} 

打印後,您可以傳遞到下一個頁面打印:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    webBrowser1.Print(); 
    webBrowser1.Navigate(nextPage()); 
} 

的只有你現在需要的是使WebBrowser導航到第一頁(你可以在表單的構造函數上設置它)

+0

文件在打印隊列中時可以配置具有此瀏覽器控件的表單嗎? – Kushal

+0

不,它會阻止打印隊列,你可以隱藏它 –

+0

令人驚訝的是它沒有!我有一個循環遍歷所有報告,爲每個報告;發送給瀏覽器控件,窗口顯示出來,我調用'.print()'並立即處理窗口。工作絕對好。 – Kushal