2015-05-28 95 views
1

我正在構建一個Windows窗體應用程序,以非常特定的方式打印文檔...應用程序必須逐頁打印,並在每次打印頁面時停止詢問將用於打印下一頁的用戶參數。C#打印 - 數據何時發送到打印機?

截至目前爲止,我已經能夠使用我自己的類從System.Drawing.Printing.PrintDocument派生並覆蓋OnBeginPrint,OnQueryPageSettings和OnPrintPage方法進行打印......我的應用程序每次都會停止一個頁面將被處理,用戶可以設置參數並按下「確定」鍵繼續......我已經在OnPrintPage方法中編寫了這個過程,但事情是類完成了整個文檔的壓縮之前被髮送到打印機......並且,如上所述,我需要我的班級打印頁面,然後停止並詢問用戶輸入,然後打印第二頁,然後打印整個文檔。

誰能給我如何進行的提示!?!?,我一直在尋找在互聯網上,但還沒有找到如何處理這樣一個奇怪的情況下,什麼...

預先感謝幫助!

+3

考慮打印單獨的文檔而不是多頁文檔。 – Bas

+1

爲什麼在開始打印之前不能要求所有參數? –

+0

如果發佈您正在使用的代碼,它也會很方便...我不認爲這個小時內的讀者會出現。 –

回答

0

System.Drawing.Printing.PrintDocument命名空間僅提供了將作業傳送到打印假脫機程序的機制。物理打印和調度由Windows打印後臺處理程序處理。這是一個驅動程序,隊列,網絡,虛擬和其他打印機相關巫術的整個世界。

如果要以編程方式強制打印作業通過打印機,您可能需要查看Print Spooler API

+1

你好邁克,考慮你在你的帖子上說些什麼我認爲easies /更快的解決方案是將每個頁面作爲一個單獨的文檔進行管理,正如Bas在上面的評論中所建議的那樣。 – dragonov7

+0

是否有人知道我可以在Print Spooler API上獲得教程,或者至少有一些例子! – dragonov7

+0

@ dragonov7是的,將每個頁面視爲一個單獨的文檔可能是最好的方法。我懷疑人們使用打印假脫機程序API是非常不尋常的。我只是在與非標準印刷設備合作的過程中遇到過這種情況,而且不知道它存在多少。 –