Pergunta
Como você pode ligar para o LPR em Python?
Não está no módulo SYS que é surpreendente.
Pretendo usar o LPR como segue mostrado por pseudo-código
10*i for i in range(77):
lpr --pages(i,i+1) file.pdf
Solução
Primeiro, não entendo seu código pseudo. (O que 10*i for i in range(77):
significa neste caso?)
Geralmente, você usa subprocess.Popen
Para executar comandos externos. Receita Activestate 511505 mostra um exemplo especificamente com lpr
. Basicamente, você pode invocar lpr
assim:
subprocess.Popen(['lpr', 'some_filename'])
No entanto: Dependendo da sua versão de lpr
, pode não haver uma opção para selecionar um subconjunto de todas as páginas, ou essa funcionalidade pode estar disponível apenas para por exemplo, arquivos DVI.
Editar: Como você parece querer imprimir páginas selecionadas de arquivos PDF, dê uma olhada no PDF Toolkit. Esse software parece fornecer funcionalidade de divisão. Além disso, verifique se a impressão diretamente de arquivos PDF é suportada. Pode ser necessário converter a entrada em PostScript primeiro (por exemplo, usando pdf2ps
). Claro que você pode automatizar essas tarefas usando subprocess.Popen
também.
Outras dicas
Basta chamá -lo da linha de comando:
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)
Algo parecido.
Eu não tentei, mas os Pycups parecem ser ligações do Python para xícaras.