首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用无驱动程序的IPP打印(IPP客户端)

使用无驱动程序的IPP打印(IPP客户端)
EN

Stack Overflow用户
提问于 2013-10-08 02:34:41
回答 2查看 17.8K关注 0票数 9

我有一个设备/设备,您无法为其安装驱动程序。我想通过让用户添加IP地址来添加支持网络/IPP/AirPrint打印机的功能。

由于我不是通过windows打印(将使用IPP),我如何使用IPP?有没有一个c#客户端(或任何windows库)可以让你通过IPP协议与IPP打印机进行交互?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-29 04:44:16

有一些IPP客户端实现和IPP库可用于不同的编程语言(java/php/python)。一个实用的解决方案可能是使用http://cups.org/software.php上提供的ipptool。创建一个名为printjob.ippipp-command-file

代码语言:javascript
复制
{
 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文件:

代码语言:javascript
复制
ipptool -tv -f mydoc.pdf ipp://192.168.2.207 printjob.ipp

确保打印机(或打印服务器)支持您发送的文档格式。我假设您熟悉如何在应用程序中执行外部命令。

尽管ipptool是由CUPS提供的,但它与任何IPP打印机都能完美地工作。请查看打印机或打印机文档以获取适当的RFC 3510 -uri-scheme或使用ippfind

有经验的开发人员应该能够在他们首选的编程语言和生态系统中实现打印作业操作。我已经用kotlin用100行代码实现了上面的用例:https://github.com/gmuth/ipp-printjob-kotlin

这是我用Java语言实现的最小PrintJob:https://github.com/gmuth/ipp-printjob-java

票数 9
EN

Stack Overflow用户

发布于 2018-12-09 06:13:10

IPP示例软件

同时,IPP Sample Software (包括上面提到的ipptool )在Github上是一个单独的项目。它现在是在Printer Working Group (PWG)的主持下,该机构标准化了IPP (互联网打印协议)。

虽然该软件目前仍处于测试阶段,但功能已经非常强大。它附带了两个主要的命令行工具:

  1. ippserver.启动它(使用适当的选项),您将在您的网络上拥有一个成熟的IPP服务器实例,作为虚拟IPP打印机(或托管多个虚拟IPP队列的IPP服务器),您可以使用它来测试任何(或您自己编写的) IPP客户端软件against.
  2. ipptool.。这是一个IPP客户端程序,可以将IPP请求的任意组合发送到网络上的任何IPP实例(CUPS服务器、ippserver、支持IPP的打印机硬件),并验证其响应。该软件附带了几个准备好的文本文件,其中包含示例IPP请求,所有文件名都带有.test后缀。

出于您的目的,您可以运行以下命令:

  1. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print get-printer-attributes.test.此命令将查询任何IPP打印机有关其支持的IPP属性。这应该包括一个项目,说明其假定的IPP版本支持。例如,报告为ipp-versions-supported (1setOf keyword) = 1.0,1.1,2.0.
  2. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-1.1.test.此命令将针对打印机运行完整的验证套件,以测试其实际IPP-1.1 compliance.
  3. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.0.test.此命令将针对打印机运行完整的验证套件,以测试其实际IPP-2.0 compliance.
  4. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.0.test.此命令将针对打印机运行完整的验证套件,以测试其实际IPP-2.0 compliance.
  5. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.1.test.此命令将针对打印机运行完整的验证套件,以测试其实际IPP-2.2 compliance.
  6. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.2.test.此命令将针对打印机运行完整的验证套件,以测试其实际IPP-2.2 compliance.
  7. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-everywhere.test.此命令将针对打印机运行完整的IPP Everywhere (这是最新的IPP标准)验证套件,以测试其真实的IPP Everywhere合规性。

IPP示例软件的AppImage

为了使这种类型的测试更容易,我从IPP示例软件创建了一个现成的可执行AppImage,它应该能够直接运行(不需要“安装”!)在所有的x86_64 Linux发行版上。

您可以在(几乎)任何Linux系统上使用它,而无需安装CUPS或ippsample!

AppImage嵌入了IPP示例软件项目的所有主要可执行命令行工具。这些精确度将作为AppImage的“子命令”运行。有关示例,请参阅下面的内容。

  1. Download:

wget https://github.com/KurtPfeifle/ippsample/releases/download/continuous/ippsample-x86_64.AppImage

  • Make AppImage可执行文件(并可以将其重命名为ippsample):

ippsample

  • Have a+x ippsample-x86_64.64.AppImage ippsample-x86_64.64.AppImage查看其内置帮助屏幕:64.AppImage

./it --ai-usage

  • Run it:

./ippsample ipptool -t -v IPP://xxx.xxx/IPP/print ipp-2.0.test

  • Find附近所有支持IPP的打印机:

./ippsample ippfind

将产生s.th。像这样:

ipp://HPA0B3CCF051B9.local:631/ipp/打印机ipp://lenjessie2.local:8444/ipp/print ipp://mbp14.papercut-ipv4.local:631/printers/OJ6500 ipp://mbp14.papercut-ipv4.local:631/printers/libreoffice-pin-code-drucker

  • Pick一台打印机,打印作业:

./ippsample ipptool \ -tv \ -f ./printjob.pdf \ipp://HPA0B3CCF051B9.local:631/ipp/-f\631

ASCIinema ASCIIcast

下面是一个(较老的) IPP ascii-cast,作为我所写的内容以及如何使用ASCIinema示例软件(及其AppImage)的说明:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19232082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档