Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

Для заданного идентификатора задания 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.... файл и извлеките из него все кровавые подробности, потому что он не является открытым текстом. Бег strings против этого, выявлены некоторые, но не все.

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

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

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

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

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

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