Pregunta

¿Cómo puedes llamar a lpr en Python?

No está en el módulo sys, lo que es sorprendente.

Mi objetivo es usar el lpr como se muestra a continuación con el pseudo-código

10*i for i in range(77):              
      lpr --pages(i,i+1) file.pdf
¿Fue útil?

Solución

Primero que nada, no entiendo tu pseudo código. (¿Qué significa 10 * i para i en el rango (77): en este caso?)

En general, utiliza subprocess.Popen para ejecutar comandos externos. receta ActiveState 511505 muestra un ejemplo específicamente con lpr . Básicamente, puedes invocar lpr de esta manera:

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

Sin embargo: Dependiendo de su versión de lpr , es posible que no haya una opción para seleccionar un subconjunto de todas las páginas, o esta funcionalidad puede estar disponible solo para por ejemplo archivos dvi .

Editar: Como parece que desea imprimir páginas seleccionadas de archivos PDF, eche un vistazo a kit de herramientas PDF . Ese software parece proporcionar funcionalidad de división. Además, asegúrese de que la impresión directa de archivos PDF sea compatible. Es posible que deba convertir la entrada a postscript primero (por ejemplo, utilizando pdf2ps ). Por supuesto, también puede automatizar estas tareas utilizando subprocess.Popen .

Otros consejos

Simplemente llámalo desde la línea de comandos:

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 así.

No lo he probado, pero los pycups parecen ser enlaces de python para tazas.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top