3

Я пытаюсь отправить задание на печать IPP с помощью ipptool. Используя примеры файлов .test, я могу отправлять команды на принтер, но не могу успешно использовать файл print-job.test.

Вот пример использования ipptool.

c:\...>ipptool -v ipp://name.local.:631/ipp/printer print-job.test
ipptool: Filename "$filename" on line 21 cannot be read.
ipptool: Filename mapped to "".

Похоже, что не удается разрешить переменную $ filename в тестовом файле, поэтому я попытался жестко закодировать это значение в тестовом файле. В этом случае я не получаю ошибку, но все еще нет печати.

У кого-нибудь есть опыт использования ipptool для тестирования ipp-печати?

4 ответа4

1

Отредактируйте копию вашего файла print-job.test и сохраните ее как senloe---print-job.test .

Ваша правка должна заменить переменные в следующих двух строках жестко закодированными значениями:

ATTR mimeMediaType document-format $filetype
FILE $filename

Замените их, например:

ATTR mimeMediaType document-format text/plain
FILE senloe---print-job.test

Это должно отправить ваш файл senloe---print-job.test в виде простого текстового файла на принтеры.

Вам нужно будет использовать следующую командную строку (при условии, что у вас установлен CUPS локально):

ipptool -v -t ipp://localhost:631/printers/your-real-printername \
       ./senloe---print-job.test

Вы должны увидеть что-то вроде следующего вывода:

"./senloe---print-job.test":
   Print-Job:
       attributes-charset (charset) = utf-8
       attributes-natural-language (naturalLanguage) = en
       printer-uri (uri) = ipp://localhost:631/printers/ubuquitech
       requesting-user-name (nameWithoutLanguage) = senloe
       document-format (mimeMediaType) = text/plain
       copies (integer) = 1
   Print file using Print-Job                                      [PASS]
       RECEIVED: 171 bytes in response
       status-code = successful-ok (successful-ok)
       attributes-charset (charset) = utf-8
       attributes-natural-language (naturalLanguage) = en
       job-uri (uri) = ipp://localhost:631/jobs/24
       job-id (integer) = 24
       job-state (enum) = pending
       job-state-reasons (keyword) = none

Если это работает, следующее также должно работать, теперь снова используя оригинальный тестовый файл print-job.test (который содержит переменные) и используя ваш отредактированный senloe---print-job.test в качестве файла для печати:

ipptool -v -t -f senloe---print-job.test                  \
       ipp://localhost:631/printers/your-real-printername \
       ./print-job.test
1

Попробуйте эту строку:

c:\...>ipptool -vt -f [name of your URF file] ipp://name.local.:631/ipp/printer print-job.test

и файл URF находится в том же месте, что и ваш файл .test . Также рекомендуется иметь ipptool в том же месте.

0

Некоторое время назад я создал AppImage примера программного обеспечения IPP, который теперь включает не только ipptool, но также ippserver который может эмулировать виртуальный принтер IPP в вашей локальной сети.

(Что такое AppImage? Это пакет программного обеспечения, состоящий из нескольких файлов - даже нескольких различных инструментов, приложений или утилит - объединенных в один сжатый файл. Просто сделайте его исполняемым и запускайте его из любого места на любом дистрибутиве Linux x86_64.)

Я также создал фильм ASCIInema, который демонстрирует использование пакета ippsample и использование ipptool:

asciicast

0
ipptool -v -tf /path/to/your.pdf  -d filetype=application/octet-stream -I http://printer-url/ipp /usr/share/cups/ipptool/print-job.test

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .