CUPS - проверьте если успешная печать (или Python или в системе)

Существует путь к Vim, чтобы знать, что терминал был закрыт: SIGHUP сигнал.

Когда Вы закрываете терминал, SIGHUP сигнал отправляется в процесс управления, который обычно является Вашей оболочкой. Ваша оболочка должна затем выйти, заставив Vim быть отправленной SIGHUP сигнал. По умолчанию процессы просто завершаются, когда они получают SIGHUP сигнал.

Я не знаком с Vim, но возможно он может быть настроен для сохранения всей работы прежде, чем выйти когда a SIGHUP сигнал получен. В противном случае, возможно, можно установить оболочку trap на SIGHUP, возможно, в сочетании с рабочим Vim с nohup, выполнить специальную команду, которая так или иначе заставляет Vim выходить более корректно, когда терминал закрывается.

2
31.01.2013, 03:23
5 ответов

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

Найденный здесь

1
27.01.2020, 22:07

Это - то, что я наконец закончил тем, что делал. printFile () функция возвращает идентификатор печати, какое использование чашек, в то время как текущая очередь печати через командную строку доступна через lpstat. Я думаю, что это немного грязно, но это достаточно хорошо для моих потребностей прямо сейчас. Спасибо за справку все Вы все пошагово переместили меня в соответствующем направлении.

20 printid = conn.printFile('EPSON_TM-P2.01', 'testreceipt.txt', 'test', {})
21 
22 stop = 0
23 TIMEOUT = 60
24 
25 while str(subprocess.check_output(["lpstat"])).find(str(printid)) > 0 and    stop < TIMEOUT:
26     stop+= 1
27     time.sleep(1)
28 if stop < TIMEOUT:
29     print "PRINT SUCCESS"
30 else:
31     print "PRINT FAILURE"
0
27.01.2020, 22:07

Я полагаю, что эквивалент в pycups является классом IPPError (отметьте try / except пример кода), начиная с cupsLastError* функции в cups возвращает коды ошибок IPP.

Проверка кода состояния подпроцесса должна также работать, но походит на ненужные издержки если pycups даст Вам код непосредственно.

0
27.01.2020, 22:07

Я использую getJobs, чтобы проверить, были ли задания отправлены на принтер.

printid = conn.printFile('EPSON_TM-P2.01', 'testreceipt.txt', 'test', {})
while conn.getJobs().get(printid, None) is not None:
    time.sleep(1)
2
27.01.2020, 22:07

Если установлен mc , используйте его

-121--114264-

Я использовал ls и ls -a , но действительно должен был использовать ls -al , прежде чем задавать вопрос.

ls -al показывает

-rw-r--r--   1 Jing  staff  49630 27 Nov 11:02  
drwxr-xr-x   9 Jing  staff    306 19 Feb 09:32  ..
drwxr-xr-x   3 Jing  staff    102 19 Feb 09:46  ~
drwxr-xr-x   8 Jing  staff    272 19 Feb 10:09 .
drwxr-xr-x  15 Jing  staff    510 19 Feb 00:49 ..
drwxr-xr-x  10 Jing  staff    340 19 Feb 01:04 foo
-rw-r--r--   1 Jing  staff   2370 19 Feb 01:27 log
-rw-r--r--   1 Jing  staff    268 19 Feb 00:48 bar

Как вы можете видеть .. и ~ Я беспокоился о том, чтобы иметь пространство перед ними. Дело не в том, что wget не работал на .. и ~ , просто я как-то добавил дополнительное пространство. Работали команды rm -r '~' и rm -r '..' .

-121--114265-

Можно подождать, пока

conn.getJobAttributes(printer_returns)["job-state"]

не станет равным 9 (IPP_JOB_COMPLETED)

0
27.01.2020, 22:07

Теги

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