Можно ли получить путь к файлу из заголовков IPP?

Я пишу печатное веб-приложение, которое имитирует поведение принтера. Он использует протокол IPP для получения документа в рамках запроса на печать. Я могу получить некоторую информацию о задании на печать из кода атрибута IPP 0x42 в заголовках IPP:

  • filename - полный путь к файлу (это моя цель) в случае Notepad++ и только имя файла, если я печатаю документ из MS Word
  • имя пользователя - из ОС

Могу ли я получить полный путь к файлу от IPP независимо от приложения? Может быть, я могу добиться этого с дополнительным запросом?

1 ответ

0x42 указывает только тип значения - в этом случае он, вероятно, представляет тип nameWithoutLanguage,

Имя файла

Краткий ответ: не существует стандартного способа получения пути к файлу из заголовков ipp.

В зависимости от реализации клиента ipp (например, драйвера принтера для Windows) вы можете использовать некоторые другие атрибуты. Существуют различные варианты того, как водитель может отправить задание на печать.

  • Задания, отправленные через операцию ipp PRINT_JOB (0x0002)

Файл добавляется как поток байтов (отформатированный на определенном языке заданий на печать, например postscript или pdf) . Большинство реализаций устанавливают атрибут задания job-name к имени исходного файла или пути к файлу.

  • Задания, отправленные через операцию ipp PRINT_URI (0x0003)

Этот метод используется редко, но предоставит URI, где принтер должен будет загрузить файл или данные для печати. URI включает в себя путь.

имя пользователя

Что касается имени пользователя, то доступен стандартный атрибут ipp: requesting-user-name, Клиенты ipp (например, драйвер принтера Windows) обязаны установить значение this. RFC 2911, раздел 3.2.1.1 "Print-Job-Request" гласит:

Атрибут "запрашивающее имя пользователя" (имя (MAX)) ДОЛЖЕН быть предоставлен клиентом, как описано в разделе 8.3.

Другие вопросы по тегам