Вопрос
Как вы можете вызвать lpr в Python?
Его нет в модуле sys, что удивительно.
Я стремлюсь использовать lpr следующим образом, показанным псевдокодом
10*i for i in range(77):
lpr --pages(i,i+1) file.pdf
Решение
Во-первых, я не понимаю ваш псевдокод. (Что означает 10 * i для i в диапазоне (77):
в этом случае?)
Как правило, вы используете subprocess.Popen
для запуска внешних команд. Рецепт ActiveState 511505 показывает пример специально с lpr
. По сути, вы можете вызвать lpr
следующим образом:
subprocess.Popen(['lpr', 'some_filename'])
Однако . В зависимости от вашей версии lpr
может не быть возможности выбрать подмножество всех страниц, или эта функция может быть доступна только для например файлы dvi .
Изменить . Поскольку вы, похоже, хотите распечатать выбранные страницы файлов PDF, ознакомьтесь с Инструментарий PDF . Похоже, что это программное обеспечение обеспечивает функцию разделения. Также убедитесь, что поддерживается прямая печать файлов PDF. Вам может понадобиться сначала преобразовать входные данные в postscript (например, используя pdf2ps
а>). Конечно, вы можете автоматизировать эти задачи, используя subprocess.Popen
.
Другие советы
Просто позвоните из командной строки:
import commands
for i in range(77):
# I'm making no assumptions about lpr command syntax here.
cmd = "lpr --pages(%s,%s) file.pdf" % (2*i, 2*i+1)
commands.getoutput(cmd)
Нечто подобное.
Я не пробовал, но pycups - это привязки python для чашек.