Где Cups хранит информацию о заданиях печати?

Мы пытаемся собрать стек бесплатного программного обеспечения, чтобы получить подробную информацию об учете заданий печати, что-то похожее на то, что делает Papercut Printlogger для очередей необработанной печати. Мы тестировали общую систему печати Apple Unix (чашки) в Debian GNU не является Unix (GNU) / Linux с Pykota Тройник для чашек (Tea4Cups).

В чашках, Hewlett-Packard (HP) Язык управления принтером (PCL) файлы заданий печати включают HP Заголовок языка задания принтера (PJL) с информацией о задании, такой как количество копий, двусторонняя или односторонняя, цветная или черно-белая и т. Д. HP даже определяет как PCL, так и PJL в одном документе.

В Microsoft (MS) Windows каждое задание на печать ставится в очередь как два файла: Spool ] (SPL) тот, который содержит сам файл печати, на любом языке: Adobe Postscript (PS), HP PCL, Epson Стандартный код для принтеров (Esc / P) или любой другой; и файл Shadow (SHD) с информацией PJL.

Насколько нам удалось определить, задания печати Postscript в Cups не содержат ничего, эквивалентного PJL или SHD, ни в PS сам файл или отдельный файл.

Итак, возможно ли получить такую ​​информацию о задании печати в чашках?

1
задан 14 May 2018 в 16:43
1 ответ

CUPS также (временно) сохраняет задания на печать (как минимум) в двух разных файлах. Для заданного ID задания 123456, состоящего из задания с одним документом, это будет:

/var/spool/cups/d123456-001
/var/spool/cups/c123456

Для заданного ID задания 123457, состоящего из нескольких документов, это будет:

/var/spool/cups/d123457-001
/var/spool/cups/d123457-002
/var/spool/cups/d123457-003
/var/spool/cups/c123457

Здесь d .. .. файл представляет собой фактический файл данных, содержащий документ задания в точности в том виде, в каком он был отправлен клиентом CUPS (и перед цепочкой фильтрации CUPS для преобразования файла задания в желаемый формат целевого принтера).

c ... . Файл представляет собой файл управления задания , который содержит всю соответствующую метаинформацию о задании (возможно, наиболее важно: параметры печати, которые хотел пользователь, например «двусторонняя, сшитая, с бумагой из лотка 3»).

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

Я начал искать ответ почти во всем StackExchange ... именно тогда я заметил здесь этот связанный вопрос. Затем я использовал поисковую систему для получения дополнительной информации, но все еще не получил полезного результата.

Наконец, я даже сам задал вопрос об этом на StackOverflow:

Затем я продолжил поиск в исходном коде CUPS на Github подсказок. Через несколько часов я нашел ответ:

  • Используйте утилиту, которую вы можете собрать из исходных кодов CUPS (но которая не создается как целевой файл Makefile по умолчанию и, следовательно, не входит в ЛЮБОЙ дистрибутив Linux. Я не знаю ни о macOS, ни о ней): он называется testipp .

См. Мой собственный ответ на связанный выше вопрос StackOverflow здесь:

Screenshot of my StackOverflow answer

К сожалению, эти полезные утилиты не упакованы ни одним дистрибутивом! Если вы знакомы с упаковщиком дистрибутивов, укажите им на эту проблему и попросите его / ее взглянуть!

1
ответ дан 3 December 2019 в 23:16

Теги

Похожие вопросы