2013-10-07 339 views
5

我有一個無法安裝驅動程序的設備/設備。我想通過讓用戶添加IP地址來添加支持網絡/ IPP/AirPrint打印機的功能。使用不帶驅動程序的IPP打印(IPP客戶端)

因爲我不是通過windows打印(會使用IPP),所以我該如何使用IPP?是否有一個C#客戶端(或任何Windows庫),允許您使用IPP協議與IPP打印機進行交互?

+0

我尋找到同樣的事情。我已經找到了UPnP打印的基礎,但目前對IPP/AirPrint的研究並沒有取得什麼成果。如果您有任何進展,請更新您的帖子。 – earthling

+0

會做。網絡上幾乎沒有任何東西。 Apple對打印機/設備之間的實際網絡合同進行了超級關閉。我在IPP上找不到任何東西。我在某處讀到AirPrint是IPP的延伸,所以如果我們能夠想出IPP,那麼我們應該是黃金。 –

+0

讓我知道如果你還發現任何東西。 –

回答

4

有幾種可用於不同編程語言(java/php/python)的IPP客戶端實現和IPP庫。

一個實際的解決方案是使用ipptool可在http://cups.org/software.php

創建ipp-command-file稱爲printfile.ipp

{ 
OPERATION Print-Job 
GROUP operation-attributes-tag 
ATTR charset attributes-charset utf-8 
ATTR language attributes-natural-language en 
ATTR uri printer-uri $uri 
FILE $filename 
} 

現在你應該可以使用這些選項來打印PDF文件:

ipptool -tv -f mydoc.pdf ipp://192.168.2.207/printers/color_A4 printfile.ipp

確保t他的打印機(或打印服務器)支持您發送的文檔格式。我假設你熟悉如何在應用程序中執行外部命令。

(即使ipptool由CUPS提供它可以完美兼容任何IPP打印機。檢查RFC 3510或合適的打印機-URI的方案您的打印機文檔)

+1

打印機不需要*「支持您發送的文檔格式。」*!這是需要支持文件格式的*** CUPS ***。 (您的命令行建議您通過CUPS服務器打印,而不是直接打印到IPP打印機 - 您爲什麼會使用「ipp:// localhost/printers/laser」作爲URI?)。 CUPS將自動輸入您發送的文件,並自動創建適當的文件格式過濾鏈以生成打印機所需的作業文件類型。您可以用'ipptool'發送PDF,目標打印機可以是PCL設備。 CUPS將負責所需的翻譯...... –

+0

Paul的原始問題與CUPS無關。確實,一些(更好的)打印機或打印服務器使用'application/octet-stream'作爲默認文檔格式,因此需要自動輸入所接收的數據。不使用驅動程序進行打印最適合使用PDF和接受PDF的打印機(例如,LaserJet M175nw或imagePRESS C7010VP)。使用CUPS不能被認爲是沒有驅動程序的打印,因爲CUPS本身總是需要「驅動程序」或過濾器。人們詢問有關IPP或「無人駕駛打印」的問題往往會避免像CUPS這樣的中間件。 –

+0

*「Paul的原始問題與CUPS無關。」*確實。 - 但是,您的答案假定這項工作是通過CUPS完成的。您使用的IPP URI方案與我所知的任何*** IPP打印設備的URI不匹配(並且我知道超過一百個)。但它與CUPS使用的相符。 –