2014-06-30 64 views
0

我正在使用IPP協議與CUPS進行通信。我有我的打印機安裝在CUPS的所有驅動程序(使用.ppd文件)和打印機獲得最新的固件。CUPS在仍在打印的作業上返回「完成」

當我查詢打印機正在打印的作業時,它表示作業的狀態在打印機甚至完成打印之前是「完成的」。看起來,CUPS在完成「上傳」文件時將該作業標記爲「完成」。

我不希望這種行爲,我基本上需要知道打印機何時打印最後一份作業的紙張。代碼如下所示: 代碼如下所示。 self.printer().ippPrinter()node-ipp的一個實例,它指向一臺打印機。閱讀我正在使用的作業狀態屬性'job-state'

var msg = { 
    "operation-attributes-tag": { 
    'job-id': id 
    } 
}; 

self.printer().ippPrinter().execute("Get-Job-Attributes", msg, function(err, res){ 
    var attributes = res['job-attributes-tag']; 

    self.setAttributes = attributes; 
    callback.call(self, attributes); 
}); 

有沒有人知道我爲什麼有這個問題或..如何使它工作? 謝謝!

回答

2

CUPS只能轉發從打印機收到的作業狀態。許多打印機驅動程序和協議的工作方式就像是「火災和遺忘」。

通常IPP打印機允許CUPS和其他客戶端監視當前的作業狀態,直到完成/打印。一些製造商沒有正確實施IPP並將提交的作業分類爲打印 - 即使打印機出現卡紙現象!

結論:

如果符合規定,你可能就無法檢查您的打印機不支持IPP「成功打印」。

+0

彼得,即使打印機還沒有打印單個頁面(但它已經收到所有輸入數據,我可以稍後要求打印機手動繼續作業),我將以完成的作業結束。我猜想,談論打印機協議(即AppSocket for HP)的[backend](https://www.cups.org/doc/man-backend.html)只能做你提到的'火災遺忘' CUPS只能將該作業標記爲已完成。對於lpd和套接字協議,有可能改變驅動程序這種情況可以改進?不同的驅動程序可以安裝更好的後端?謝謝。 – gabrielgiussi

+0

我不知道lpd或套接字協議提供更好的方式來監視作業。無論如何,打印機也必須支持這種監控。從我的經驗來看,ipp提供了更多選擇,但這可能是一個有偏見的觀點:-) –

相關問題