2011-10-13 119 views
0

我們有一些計算機,我們負責打印文檔。當用戶打印時,我想攔截打印作業,提示他們輸入用戶名/密碼,以便我可以爲他們的帳戶收費,然後讓打印作業繼續到打印機。攔截打印作業

這是如何實現的?是否有可能在.NET中編寫這樣的實用程序?

回答

1

你真的需要看看爲此創建一個端口監視器。遠非簡單。你可以看看RedMon。順便說一句:許多打印機供應商提供的解決方案使用嵌入到打印流(PCL/PS)中的代碼並將數據收集並保留在打印機上。

例如,施樂擁有一項名爲標準會計的內容。當在驅動使能它嵌入PJL碼是這樣的:

@PJL COMMENT OID_ATT_ACCOUNTING_INFORMATION_AVP "XRX_USERID,xxxx"; 

一旦作業已被打印設備參考了用戶的,然後可以報告頁面等號碼。

在工作站/服務器上執行此操作時遇到的問題是檢測打印的頁數可能很困難。例如,如果您嘗試通過頁面進行收費,則可能會從文件中解析頁面的數量,或者通過PCL或PS RIP運行,並確定頁面上是否有2up或4up的標誌而這項工作是由打印機完成的,而不是驅動程序完成的,當他們真的只打印1時,您將向客戶收取4頁的費用。這是許多缺陷之一。

+0

你能詳細說一下這些代碼嗎?或者,請指導我詳細解釋它們的資源? – NYSystemsAnalyst

+0

在我的回覆中添加了更多內容。希望有所幫助。 –