Сервер печати Python - PullRequest
       1

Сервер печати Python

1 голос
/ 08 ноября 2011

Я пытаюсь найти решение для создания сервера печати, на котором пользователи Windows могут печатать и форматировать то, что они печатают в XML.

Я нашел этот скрипт на python: http://newcenturycomputers.net/projects/rawprintserver.html (скачатьна правой стороне; вертикально).После установки и тестирования его, кажется, получить задание на печать.Однако каждый раз, когда я пытаюсь распечатать его, он просто записывает «Ошибка: lpr возвращает 100» и завершается.

Вот полный журнал:

[2011/11/08 11:51:51] Raw Print Server Startup: PID = 16998
[2011/11/08 11:51:51] Starting Printer <dotmatrix> on port 9100
[2011/11/08 11:51:51] Starting Printer <dotmatrix> on port 9101
[2011/11/08 11:52:01] Receiving Job from ('192.168.1.19', 49448) for Printer <dotmatrix> (Spool File RawPrintJob00001.prn) 
[2011/11/08 11:52:01] Printer <dotmatrix>: Printing Job RawPrintJob00001.prn
[2011/11/08 11:52:01] Error: lpr returns 100

Я следовал за readme, чтобыбуква, так что спул находится в / var / tmp, в отличие от спулинга cups, если это имеет значение.

Я не вижу этой ошибки ни в одном из файлов, и поиск кода ошибки Python 100 не помогает.

Возможно, кто-то может сообщить мне, что означает эта ошибка .. ИЛИ, возможно, гуру питона мог бы просто бегло взглянуть на код (маленькие, ~ 6 файлов ~ 100 строк каждый) и сообщить мне, гдеЯ могу подключиться к выводу / whichermercallit, чтобы начать изучение работы с XML в python:)

Кажется, что файл prn нигде не остается.На самом деле все, что мне нужно, - это создать текстовый файл или что-то подобное из задания на печать, которое я затем смогу изменить.Однако приветствуется более элегантное решение (например, способ изменить поток / задание перед записью в файл).

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2011

файл spooler.py содержит этот фрагмент кода:

class printer(base_printer):
    def sendjob(self, fp, title = None):
        # title is irrelevant here
        out = os.popen("lpr -P'%s' >/dev/null 2>&1" \
            % self.printer_name, "wb")
        blk = fp.read(8192)
        while blk:
            out.write(blk)
            blk = fp.read(8192)
        rc = out.close()
        if rc is not None:
            print "Error: lpr returns %02x" % rc

, поэтому сценарий использует popen() для запуска задания lpr.ошибка, с которой вы сталкиваетесь, вероятно, из-за неправильной конфигурации lpr.попробуйте использовать точно такую ​​же команду из командной строки и посмотрите, как она работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...