我想测试 IPP 应该具有的一些功能(即监控印象数;请参阅此问题),但我还没有硬件。如何模拟这样的打印机?是否有虚拟 IPP 打印机的代码?
我将在 Linux 或 Windows 中工作。
我想测试 IPP 应该具有的一些功能(即监控印象数;请参阅此问题),但我还没有硬件。如何模拟这样的打印机?是否有虚拟 IPP 打印机的代码?
我将在 Linux 或 Windows 中工作。
Github 上的IPP 示例软件是一个成熟的、开源的、IPP-2.2和IPP Everywhere兼容的打印机模拟器。它由标准化 IPP(互联网打印协议)的机构打印机工作组(PWG) 提供。
IPP 示例软件可以在任何主要平台上编译:Linux、Windows、macOS。
该软件目前仍处于测试阶段,但已经非常实用。它附带的命令行工具之一是ippserver
. 这是您正在寻找的模拟打印机。它比 Apple 的打印机模拟器强大得多——但它没有 GUI。您需要熟悉运行命令行工具。
一旦您可以开始ippserver
(使用适当的选项),您将在您的网络上拥有一个成熟的虚拟 IPP 打印机实例。您可以使用它来测试任何(或您自己编写的)IPP 客户端软件。
IPP Sample 提供了第二个重要工具,ipptool
. 这可以用作 IPP 客户端。你可以玩两者来互相测试。看看它在这个 ASCII-cast 中是如何工作的:
如果您想自己尝试并且在 Linux 上,您甚至不需要自己构建它。只需使用我读取的软件AppImage(由一个可执行文件组成),无需“安装”步骤即可直接运行。就是这样:
下载它:
wget https://github.com/KurtPfeifle/ippsample/releases/download/continuous/ippsample-x86_64.AppImage
使 AppImage 可执行(并可选择将其重命名为ippsample
):
chmod a+x ippsample-x86_64.AppImage
mv ippsample-x86_64.AppImage ippsample
看看它的内置帮助屏幕:
./ippsample --ai-usage
运行:
./ippsample ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.0.test
(这将运行一个测试套件来验证 IP 地址 xxx.xxx.xxx.xxx 上的 IPP 打印机是否完全符合 IPP-2.0。)
打印作业:(
./ippsample ipptool -t -v \
-f my.pdf \
ipp://xxx.xxx.xxx.xxx/ipp/print \
print-job.test
这会将my.pdf作为打印作业发送到打印机。)
验证打印机的print-uri
支持:
./ippsample ipptool -t -v \
-o document-uri=https://ftp.pwg.org/pub/pwg/candidates/cs-ippeve10-20130128-5100.14.pdf \
ipp://xxx.xxx.xxx.xxx/ipp/print \
print-uri.test
(这将告诉打印机从document-uri获取命名的 PDF并打印它。)
一个非常好的 IPP 模拟器是 Apples Printer Simulator。在https://developer.apple.com/download/more/查找硬件 IO 工具 (请参阅此问题)
即使它仅适用于 OS X,您仍然可以在 Linux 或 Windows 上针对此网络服务进行测试。打印的页面可以在预览中弹出以供查看。模拟器还支持所需的 IPP 属性job-impressions-completed
。该工具可节省大量纸张。
CUPS 不是一个好的模拟器。为了正常工作,它需要一台可以打印的真正打印机。您可以暂停一个队列并测试打印到它。impressions-completed > 0
除非您释放队列,否则您将一无所获。这将导致真实的而非模拟的打印。