Question

Comment appeler lpr en Python?

Ce n'est pas dans le sys -module qui est surprenant.

Je souhaite utiliser le lpr comme suit, avec pseudo-code

10*i for i in range(77):              
      lpr --pages(i,i+1) file.pdf
Était-ce utile?

La solution

Tout d’abord, je ne comprends pas votre pseudo-code. (Que signifie 10 * i pour i dans la plage (77): dans ce cas?)

En règle générale, vous utilisez sous-processus.Popen pour exécuter des commandes externes. La recette ActiveState 511505 montre un exemple spécifique avec lpr . En gros, vous pouvez appeler lpr comme ceci:

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

Toutefois: en fonction de votre version de lpr , il peut ne pas être possible de sélectionner un sous-ensemble de toutes les pages, ou cette fonctionnalité peut être disponible uniquement pour par exemple fichiers dvi .

Modifier: Comme vous semblez vouloir imprimer des pages sélectionnées de fichiers PDF, consultez le Boîte à outils PDF . Ce logiciel semble fournir une fonctionnalité de fractionnement. Assurez-vous également que l'impression directe de fichiers PDF est prise en charge. Vous devrez peut-être convertir l’entrée en postscript d’abord (par exemple, en utilisant pdf2ps ). Bien entendu, vous pouvez également automatiser ces tâches à l'aide de subprocess.Popen .

Autres conseils

Appelez-le simplement à partir de la ligne de commande:

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)

Quelque chose comme ça.

Je ne l'ai pas essayé, mais pycups semble être une liaison en python pour des tasses.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top