Можно ли получить путь к файлу из заголовков 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.