2013-10-07 340 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使用的相符。 –