Oracle Solaris 中的 IPP 客户端支持是在 PAPI 下面实现的。借助于此支持,使用 PAPI 的任何应用程序都可以使用 IPP 以及其他打印服务和协议。
这些应用程序包括:
GNOME 桌面环境-使用 libgnomeprint 的应用程序
BSD 命令-BSD UNIX LPD 打印服务命令:
lpr
lpq
lprm
lpc
LP 命令-System V UNIX LP 打印服务命令:
lp
lpstat
lpmove
accept
reject
enable
disable
应用程序的 IPP 客户端支持是通过可装入的模块 psm-ipp.so 提供的,该模块将根据打印机 printer-uri 或正在处理的作业在运行时装入。
由于 IPP 在 HTTP 传输的上面一层,因此,客户端和服务器端支持都需要具有读取和写入 HTTP 协议的功能。在服务器端,此支持是由 Apache Web 服务器提供的。在客户端,此支持是由 HTTP 库 libhttp-core.so 提供的。
psm-lpsched 命令提供打印服务中立的 PAPI 表示形式与 LP 打印假脱机程序 (lpsched) 之间的转换。此命令提取传递到各种 PAPI 函数中的 PAPI 属性,并将这些属性转换为数据的内部 lpsched 表示形式。然后,psm-lpsched 联系 lpsched 以执行请求的操作。执行后,psm-lpsched 将结果转换回打印服务中立的 PAPI 表示形式,并将这些结果返回给调用方。
LP 打印假脱机程序 (lpsched) 提供假脱机服务、将作业数据转换为打印机支持的格式以及将作业数据传输到物理打印机。