0

我正在编写模拟打印机行为的打印 Web 应用程序。它使用 IPP 协议在打印请求中接收文档。我可以从 IPP 标头中的 IPP 属性代码 0x42 获取有关打印作业的一些信息:

  • 文件名 - Notepad++ 的完整文件路径(这是我的目标),如果我从 MS Word 打印文档,则只有文件名
  • 用户名 - 来自操作系统

我可以从独立于应用程序的 IPP 获取完整的文件路径吗?我可以通过额外的要求来实现这一点吗?

4

1 回答 1

0

0x42仅指定值类型 - 在这种情况下,它可能代表 type nameWithoutLanguage

文件名

简短回答:没有从 ipp 标头获取文件路径的标准方法。

根据 ipp 客户端实现(例如 windows 打印机驱动程序),您可能能够使用一些其他属性。驱动程序如何提交打印作业有多种选择。

  • 通过 ipp 操作发送的作业PRINT_JOB (0x0002)

该文件被添加为字节流(以特定的打印作业语言格式化,如 postscript 或 pdf)。大多数实现将作业属性设置job-name为原始文件名或文件路径的名称。

  • 通过 ipp 操作发送的作业PRINT_URI (0x0003)

此方法很少使用,但会提供一个 URI,打印机必须在其中加载文件或数据以进行打印。URI 包含路径。

用户名

至于用户名,有一个标准的 ipp 属性可用:requesting-user-name. 设置此值是 ipp 客户端(例如 windows 打印机驱动程序)的责任。RFC 2911 Section 3.2.1.1 Print-Job-Request 说:

"requesting-user-name" (name(MAX)) 属性应该由客户端提供,如 8.3 节所述。

于 2017-11-29T19:24:58.363 回答