Lpr -модуль в Python - PullRequest
       40

Lpr -модуль в Python

0 голосов
/ 26 ноября 2009

Как вы можете вызвать lpr в Python?

Его нет в модуле sys, что удивительно.

Я стремлюсь использовать lpr следующим образом, показанным псевдокодом

10*i for i in range(77):              
      lpr --pages(i,i+1) file.pdf

Ответы [ 3 ]

5 голосов
/ 26 ноября 2009

Прежде всего, я не понимаю ваш псевдокод. (Что означает 10*i for i in range(77): в данном случае?)

Как правило, вы используете subprocess.Popen для запуска внешних команд. ActiveState recipe 511505 показывает пример специально с lpr. По сути, вы можете вызвать lpr так:

subprocess.Popen(['lpr', 'some_filename'])

Однако: В зависимости от вашей версии lpr может не быть возможности выбрать подмножество всех страниц, или эта функция может быть доступна только для , например. dvi файлы .

Редактировать: Поскольку вы, похоже, хотите печатать отдельные страницы PDF-файлов, взгляните на PDF toolkit . Похоже, что это программное обеспечение обеспечивает функцию разделения. Также убедитесь, что поддерживается прямая печать файлов PDF. Возможно, вам придется сначала преобразовать входные данные в postscript (например, используя pdf2ps). Конечно, вы можете автоматизировать эти задачи, используя subprocess.Popen.

2 голосов
/ 26 ноября 2009

Просто позвоните из командной строки:

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)

Нечто подобное.

0 голосов
/ 26 ноября 2009

Я не пробовал, но pycups, похоже, является python-привязками для чашек.

http://cyberelk.net/tim/software/pycups/

...