Domanda

Come puoi chiamare lpr in Python?

Non è sorprendente il modulo sys che è sorprendente.

Mi propongo di usare lpr come mostrato dallo pseudo-codice

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

Soluzione

Prima di tutto, non capisco il tuo pseudo codice. (Cosa significa 10 * i per i nell'intervallo (77): in questo caso?)

In genere, si utilizza subprocess.Popen per eseguire comandi esterni. Ricetta 511505 di ActiveState mostra un esempio specifico con lpr . Fondamentalmente, puoi invocare lpr in questo modo:

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

Tuttavia: a seconda della versione di lpr , potrebbe non esserci un'opzione per selezionare un sottoinsieme di tutte le pagine oppure questa funzionalità potrebbe essere disponibile solo per ad es. file dvi .

Modifica: poiché sembra che tu voglia stampare pagine selezionate di file PDF, dai un'occhiata a PDF toolkit . Quel software sembra fornire funzionalità di suddivisione. Inoltre, assicurarsi che sia supportata la stampa diretta di file PDF. Potrebbe essere necessario convertire prima l'input in postscript (ad esempio utilizzando pdf2ps ). Ovviamente puoi automatizzare queste attività anche usando subprocess.Popen .

Altri suggerimenti

Basta chiamarlo dalla riga di 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)

Qualcosa del genere.

Non l'ho provato, ma i pycup sembrano essere attacchi di pitone per tazze.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top