[impression] maj de class_impression pour la nouvelele imprimante
Ignore-this: 5a2a03b33fa00ec84dca5fe353dd2659 darcs-hash:20090515105240-bd074-9d8f99c09b4c2f53110fa766e57ee1001205dcbb.gz
This commit is contained in:
parent
2e3f4a3239
commit
8c6816b511
3 changed files with 104 additions and 85 deletions
|
@ -8,7 +8,7 @@ Inspir
|
|||
Licence : GNU General Public Licence, version 2
|
||||
"""
|
||||
|
||||
import sys, time, tempfile, os, commands, string, random
|
||||
import sys, time, tempfile, os, commands
|
||||
sys.path.append('/usr/scripts/impression')
|
||||
sys.path.append('/usr/scripts/gestion')
|
||||
from config import impression
|
||||
|
@ -17,7 +17,7 @@ from syslog import openlog, syslog, LOG_DEBUG
|
|||
from gen_code import NoCodeError, new_code
|
||||
|
||||
|
||||
duree_vie_pdf=3600
|
||||
duree_vie_pdf = 3600
|
||||
|
||||
#fonction principal: impression (fichier_impression)
|
||||
|
||||
|
@ -25,7 +25,7 @@ duree_vie_pdf=3600
|
|||
|
||||
class ErreurImpression(Exception):
|
||||
def __init__(self, value):
|
||||
self.value=value
|
||||
self.value = value
|
||||
def __str__(self):
|
||||
return repr(self.value)
|
||||
|
||||
|
@ -37,7 +37,7 @@ class test:
|
|||
return u"francois.bobot@crans.org"
|
||||
def Nom(self):
|
||||
return u"francois"
|
||||
def solde(self,modif=0.):
|
||||
def solde(self, modif=0.):
|
||||
return (40.+modif)
|
||||
def save(self):
|
||||
pass
|
||||
|
@ -56,7 +56,7 @@ class fichier_impression:
|
|||
cout = 0.0
|
||||
portrait = True
|
||||
livret = False
|
||||
agrafe= "None" # TopLeft, Top, TopRight, Left, Right, BottomLeft, BottomRight
|
||||
agrafe = "None" # TopLeft, Top, TopRight, Left, Right, BottomLeft, BottomRight
|
||||
user = ""
|
||||
user_ldap = None # sera une instance de l'utilisateur dans la base ldap.
|
||||
imprime = -1 #-2 impression en suspend, -1 mise dans la file
|
||||
|
@ -127,10 +127,10 @@ class fichier_impression:
|
|||
sys.stderr.write("ERROR: Penser a ouvrir a l'adherent debite...\n")
|
||||
return
|
||||
|
||||
def impression_canon(self)
|
||||
def impression_canon(self):
|
||||
""" Envoie l'impression a l'imprimante avec les parametres actuels """
|
||||
# Envoi du fichier à CUPS
|
||||
options =''
|
||||
options = ''
|
||||
# Création de la liste d'options
|
||||
# pour le nombre de copies et specifie non assemblee
|
||||
#options += '-# %d -o Collate=True' % self.nb_copies
|
||||
|
@ -185,7 +185,7 @@ class fichier_impression:
|
|||
else:
|
||||
options += ' -o OutputBin=TrayA'
|
||||
|
||||
(status,rep) = commands.getstatusoutput("lpr %s -# %d %s" % (options, self.nb_copies, self.nom_fichier_pdf))
|
||||
(status, rep) = commands.getstatusoutput("lpr %s -# %d %s" % (options, self.nb_copies, self.nom_fichier_pdf))
|
||||
if status != 0:
|
||||
print "<p>status:%d rep: %s</p>" % (status, rep)
|
||||
openlog("impression")
|
||||
|
@ -195,7 +195,7 @@ class fichier_impression:
|
|||
def impression_laserjet(self):
|
||||
""" Envoie l'impression a l'imprimante avec les parametres actuels """
|
||||
# Envoi du fichier à CUPS
|
||||
options =''
|
||||
options = ''
|
||||
# Création de la liste d'options
|
||||
# pour le nombre de copies et specifie non assemblee
|
||||
#options += '-# %d -o Collate=True' % self.nb_copies
|
||||
|
@ -210,10 +210,10 @@ class fichier_impression:
|
|||
options += ' -o pdf-level3'
|
||||
|
||||
# Pour donner le titre de l'impression
|
||||
options += " -T \"%s\"" % self.nom_job.replace("\"","\\\"")
|
||||
options += " -T \"%s\"" % self.nom_job.replace("\"", "\\\"")
|
||||
|
||||
# Pour donner le login de l'adherent
|
||||
options += ' -U \"%s\"' % self.user.replace("\"","\\\"")
|
||||
options += ' -U \"%s\"' % self.user.replace("\"", "\\\"")
|
||||
|
||||
# Pour demander une page de garde
|
||||
#options += ' -o job-sheets=crans' #page de garde de type standard
|
||||
|
@ -223,17 +223,17 @@ class fichier_impression:
|
|||
#Indique la présence d'un bac de sortie avec agrafeuse
|
||||
options += " -o Option20=MBMStaplerStacker -o OutputBin=StackerDown"
|
||||
|
||||
if self.agrafe==-1:
|
||||
if self.agrafe == -1:
|
||||
options += ' -o StapleLocation=1diagonal'
|
||||
elif self.agrafe==0:
|
||||
elif self.agrafe == 0:
|
||||
options += ' -o StapleLocation=None'
|
||||
elif self.agrafe==1:
|
||||
elif self.agrafe == 1:
|
||||
options += ' -o StapleLocation=1parallel'
|
||||
elif self.agrafe==2:
|
||||
elif self.agrafe == 2:
|
||||
options += ' -o StapleLocation=2parallel'
|
||||
elif self.agrafe==3:
|
||||
elif self.agrafe == 3:
|
||||
options += ' -o StapleLocation=3parallel'
|
||||
elif self.agrafe==6:
|
||||
elif self.agrafe == 6:
|
||||
options += ' -o StapleLocation=Stitching'
|
||||
|
||||
if self.transparent:
|
||||
|
@ -254,9 +254,9 @@ class fichier_impression:
|
|||
else:
|
||||
options += ' -o sides=one-sided'
|
||||
options += ' -o HPColorasGray=%s' % (not self.couleur)
|
||||
liste_nom_fichier_pdf=(' '+self.nom_fichier_pdf)*self.nb_copies
|
||||
liste_nom_fichier_pdf = (' '+self.nom_fichier_pdf)*self.nb_copies
|
||||
#(status,rep) = commands.getstatusoutput("lpr %s %s" % (options, self.nom_fichier_pdf))
|
||||
(status,rep) = commands.getstatusoutput("lpr %s %s" % (options, liste_nom_fichier_pdf))
|
||||
(status, rep) = commands.getstatusoutput("lpr %s %s" % (options, liste_nom_fichier_pdf))
|
||||
if status != 0:
|
||||
print "<p>status:%d rep: %s</p>" % (status, rep)
|
||||
openlog("impression")
|
||||
|
@ -273,7 +273,7 @@ class fichier_impression:
|
|||
# Transparent, paper, nbr_page, recto_verso
|
||||
if (self.taille != 'A4') & (self.taille != 'A3'):
|
||||
self.list_messages_importants.append("paper")
|
||||
self.erreur_critique=True
|
||||
self.erreur_critique = True
|
||||
if self.transparent:
|
||||
if self.paper != 'A4':
|
||||
self.list_messages.append("A3 transparent")
|
||||
|
@ -292,12 +292,12 @@ class fichier_impression:
|
|||
|
||||
"""
|
||||
if self.imprime:
|
||||
body=string.join(map ((dico_message_laserjet.get),self.list_messages_importants))
|
||||
body=string.join(map ((dico_message_laserjet.get), self.list_messages_importants))
|
||||
if len(self.list_messages)<>0:
|
||||
body=body+'\nRemarques:\n'+string.join(map ((dico_message_laserjet.get),self.list_messages))
|
||||
body=body+'\nRemarques:\n'+string.join(map ((dico_message_laserjet.get), self.list_messages))
|
||||
else:
|
||||
body=string.join(map ((dico_message_devis.get),self.list_messages_importants))
|
||||
body=body+'\nRemarque:\n'+string.join(map ((dico_message_devis.get),self.list_messages))
|
||||
body=string.join(map ((dico_message_devis.get), self.list_messages_importants))
|
||||
body=body+'\nRemarque:\n'+string.join(map ((dico_message_devis.get), self.list_messages))
|
||||
|
||||
body=body % {'taille' : self.taille, 'code' : self.code, 'solde' : self.user_ldap.solde(), 'cout' : self.cout , 'adresse_imprimante' : impression.From_imprimante}
|
||||
"""
|
||||
|
@ -323,14 +323,14 @@ class fichier_impression:
|
|||
fd_fichier_pdf.write(f_value)
|
||||
fd_fichier_pdf.close()
|
||||
except Exception, inst:
|
||||
raise ErreurImpression("class :erreur dans enregistrement du .pdf %s: %s" % (self.nom_fichier_pdf,str(inst)))
|
||||
raise ErreurImpression("class :erreur dans enregistrement du .pdf %s: %s" % (self.nom_fichier_pdf, str(inst)))
|
||||
os.chmod(self.nom_fichier_pdf, 0640)
|
||||
os.chmod(self.nom_fichier_desc, 0640)
|
||||
if self.taille == 'A3':
|
||||
pdfbook = "pdfbook --paper a3paper %s"
|
||||
else:
|
||||
pdfbook = "pdfbook %s"
|
||||
(status,rep) = commands.getstatusoutput(pdfbook % self.nom_fichier_pdf)
|
||||
(status, rep) = commands.getstatusoutput(pdfbook % self.nom_fichier_pdf)
|
||||
self.nom_fichier_pdf = "%s-book.pdf" % self.nom_fichier_pdf[:-4]
|
||||
if status != 0:
|
||||
print "<p>status:%d rep: %s</p>" % (status, rep)
|
||||
|
@ -350,10 +350,10 @@ class fichier_impression:
|
|||
"portrait", "user", "imprime", "livret",
|
||||
"nom_fichier_pdf", "nom_fichier_desc",
|
||||
"code", "modif_epoch", "job_id","agrafe"):
|
||||
file_obj_desc.write(key+"="+str(getattr(self,key))+"\n")
|
||||
file_obj_desc.write(key+"="+str(getattr(self, key))+"\n")
|
||||
file_obj_desc.close()
|
||||
except Exception, inst :
|
||||
raise ErreurImpression("class : erreur dans enregistrement du .desc %s : %s" % (self.nom_fichier_desc,str(inst)))
|
||||
raise ErreurImpression("class : erreur dans enregistrement du .desc %s : %s" % (self.nom_fichier_desc, str(inst)))
|
||||
|
||||
|
||||
def read_desc(self):
|
||||
|
@ -364,16 +364,16 @@ class fichier_impression:
|
|||
while ligne != "":
|
||||
parse = ligne.split("=")
|
||||
if parse[1] == 'None':
|
||||
setattr(self,parse[0],None)
|
||||
setattr(self, parse[0], None)
|
||||
elif parse[0] in ("nom_job", "taille", "user", "nom_fichier_pdf", "nom_fichier_desc", "job_id", "agrafe"):
|
||||
#pour les attributs strings
|
||||
setattr(self,parse[0],parse[1])
|
||||
setattr(self, parse[0], parse[1])
|
||||
elif parse[0] in ("nbr_pages", "nb_copies", "imprime", "code"):
|
||||
#pour les attributs entiers
|
||||
setattr(self,parse[0],int(parse[1]))
|
||||
setattr(self, parse[0], int(parse[1]))
|
||||
elif parse[0] in ("recto_verso", "transparent", "couleur", "portrait", "erreur_critique", "livret"):
|
||||
#pour les attributs boolean
|
||||
setattr(self,parse[0],(parse[1] == 'True'))
|
||||
setattr(self, parse[0], (parse[1] == 'True'))
|
||||
elif parse[0] in ("cout", "modif_epoch"):
|
||||
#pour les attributs flottants
|
||||
setattr(self, parse[0], float(parse[1]))
|
||||
|
@ -381,10 +381,10 @@ class fichier_impression:
|
|||
self.erreur_critique = True
|
||||
print '<p>ligne non parsée: %s</p>' % ligne
|
||||
|
||||
ligne=file_obj_desc.readline()[0:-1]
|
||||
ligne = file_obj_desc.readline()[0:-1]
|
||||
file_obj_desc.close()
|
||||
except Exception, inst :
|
||||
raise ErreurImpression("class : erreur dans l'ouverture du .desc %s : %s" % (self.nom_fichier_desc,repr(inst)))
|
||||
raise ErreurImpression("class : erreur dans l'ouverture du .desc %s : %s" % (self.nom_fichier_desc, repr(inst)))
|
||||
# Verifie que le fichier pdf existe bien si il doit exister.
|
||||
if not os.path.exists(self.nom_fichier_pdf):
|
||||
if self.imprime != -3:
|
||||
|
@ -392,9 +392,9 @@ class fichier_impression:
|
|||
openlog("impression")
|
||||
syslog("class : %s a disparu" % self.nom_fichier_pdf)
|
||||
|
||||
def get_attr(self,key):
|
||||
def get_attr(self, key):
|
||||
""" Fonction obsolete utilise avec cheetah """
|
||||
return getattr(self,key)
|
||||
return getattr(self, key)
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
|
@ -433,7 +433,7 @@ class fichier_impression:
|
|||
self.code = "%s#" % self.code
|
||||
for key in ("nbr_pages", "nb_copies", "taille", "code"):
|
||||
corps += '<TR><td>%s</td><td>%s</td></TR>\n' % (key,
|
||||
str(getattr(self,key)))
|
||||
str(getattr(self, key)))
|
||||
self.code = self.code[:-1]
|
||||
|
||||
corps += "</TABLE>\n</td>\n<td>\n<TABLE BORDER=2 RULES=ROWS CELLPADDDING=0>\n"
|
||||
|
@ -472,7 +472,7 @@ def utilisateur(user, rw):
|
|||
try:
|
||||
base = crans_ldap()
|
||||
if rw:
|
||||
res = base.search("login=%s" % user,'w')['adherent']
|
||||
res = base.search("login=%s" % user, 'w')['adherent']
|
||||
else:
|
||||
res = base.search("login=%s" % user)['adherent']
|
||||
except:
|
||||
|
@ -483,7 +483,7 @@ def utilisateur(user, rw):
|
|||
raise ErreurImpression("class : adherent %s introuvable\n" % user)
|
||||
adherent = res[0]
|
||||
openlog("impression")
|
||||
syslog(LOG_DEBUG,"class : Adherent %s (aid=%s) recupere.\n" % (user, adherent.id()))
|
||||
syslog(LOG_DEBUG, "class : Adherent %s (aid=%s) recupere.\n" % (user, adherent.id()))
|
||||
return adherent
|
||||
|
||||
################################################################################
|
||||
|
@ -497,8 +497,7 @@ def cout_canon(fic_impr):
|
|||
un float dans les cas de fonctionnement
|
||||
"""
|
||||
|
||||
# taille peut valoir A3 ou A4
|
||||
# nb_copies est le nombre de copies désirées
|
||||
faces = fic_impr.nbr_pages
|
||||
|
||||
if (fic_impr.recto_verso == False):
|
||||
feuilles = faces # nb de pages par copies
|
||||
|
@ -522,14 +521,14 @@ def cout_canon(fic_impr):
|
|||
|
||||
# Cout des agrafes
|
||||
if fic_impr.agrafe in ["Top", "Bottom", "Left", "Right"] or fic_impr.livret:
|
||||
nb_agraphes = 2
|
||||
nb_agrafes = 2
|
||||
elif fic_impr.agrafe in ["None", None]:
|
||||
nb_agraphes = 0
|
||||
nb_agrafes = 0
|
||||
else:
|
||||
nb_agraphes = 1
|
||||
nb_agrafes = 1
|
||||
|
||||
if pages <= 50:
|
||||
c_agrafes =fic nb_agraphes * impression.c_agrafe
|
||||
c_agrafes = fic.nb_agrafes * impression.c_agrafe
|
||||
else:
|
||||
c_agrafes = 0
|
||||
|
||||
|
@ -570,12 +569,12 @@ def cout_laserjet(fic_impr):
|
|||
|
||||
if (fic_impr.couleur):
|
||||
# Convertit les pdf en png couleur
|
||||
(status, rep) = commands.getstatusoutput("nice -n 5 gs -sDEVICE=png16m -r30 -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=50000000 -sOutputFile=%s%%d -q %s" % (nom_png,fic_impr.nom_fichier_pdf))
|
||||
(status, rep) = commands.getstatusoutput("nice -n 5 gs -sDEVICE=png16m -r30 -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=50000000 -sOutputFile=%s%%d -q %s" % (nom_png, fic_impr.nom_fichier_pdf))
|
||||
if status:
|
||||
return "ERREUR : Fichier invalide. Aucun png n'a ete cree.\n"
|
||||
|
||||
# Récupère la liste des fichiers
|
||||
list_filepng=os.listdir(nom_rep)
|
||||
list_filepng = os.listdir(nom_rep)
|
||||
# Calcule le nombre de pixel de couleur
|
||||
remplissage = [0, 0, 0, 0, 0] # C, M, J, N, nombre de pages
|
||||
for fichier in list_filepng:
|
||||
|
@ -592,7 +591,7 @@ def cout_laserjet(fic_impr):
|
|||
else:
|
||||
pages = int(faces/2.+0.5)
|
||||
if total_couleur > 0:
|
||||
c_total = (c_taille * pages + (impression.c_tambour_coul +
|
||||
c_total = (c_taille * pages + (impression.c_tambour_coul +
|
||||
impression.c_tambour_noir) * faces +
|
||||
cout_noir * total_noir + cout_coul * total_couleur)
|
||||
else: # Pas de couleur, malgre l'indication
|
||||
|
@ -605,7 +604,7 @@ def cout_laserjet(fic_impr):
|
|||
return "ERREUR : Fichier invalide. Aucun png n'a été créé.\n"
|
||||
|
||||
#récupère la liste des fichiers
|
||||
list_filepng=os.listdir(nom_rep)
|
||||
list_filepng = os.listdir(nom_rep)
|
||||
|
||||
remplissage = [0, 0] # Noir, nombre de pages
|
||||
for fichier in list_filepng:
|
||||
|
@ -637,3 +636,7 @@ def cout_laserjet(fic_impr):
|
|||
sys.stderr.write("ERREUR : Impossible d'enlever le dossier.\n")
|
||||
|
||||
return float(c_total)/100
|
||||
|
||||
|
||||
def cout(fic_impr):
|
||||
exec ("return cout_%s(fic_impr)" % impression.imprimante)
|
||||
|
|
|
@ -5,25 +5,26 @@ import sys
|
|||
sys.path.append("/usr/scripts/gestion")
|
||||
|
||||
import hptools
|
||||
from config import impression
|
||||
|
||||
dico = {
|
||||
u"PrÁt": u"Prêt",
|
||||
u"Pr menus, appuy \x1e": u"",
|
||||
u"Powersave activÅ": u"En veille",
|
||||
u"Verification": u"Vérification imprimante",
|
||||
u"imprimante": u"",
|
||||
u"PrÅchauffage": u"Préchauffage",
|
||||
u"Traitement de la": u"Impression en cours",
|
||||
u"tÀche du bac 4": u"",
|
||||
u"tÀche du bac 3": u"",
|
||||
u"COMMANDER CARTOUCHE": u"",
|
||||
u"CYAN": u"",
|
||||
u"MAGENTA": u"",
|
||||
}
|
||||
|
||||
def etat():
|
||||
def etat_laserjet():
|
||||
""" Renvoie une liste des differents ecrans actuels du display de l'imprimante """
|
||||
liste_oid = ["mib-2.43.16.5.1.2.1.1","mib-2.43.16.5.1.2.1.2","mib-2.43.16.5.1.2.1.3","mib-2.43.16.5.1.2.1.4","mib-2.43.16.5.1.2.1.5"]
|
||||
dico = {
|
||||
u"PrÁt": u"Prêt",
|
||||
u"Pr menus, appuy \x1e": u"",
|
||||
u"Powersave activÅ": u"En veille",
|
||||
u"Verification": u"Vérification imprimante",
|
||||
u"imprimante": u"",
|
||||
u"PrÅchauffage": u"Préchauffage",
|
||||
u"Traitement de la": u"Impression en cours",
|
||||
u"tÀche du bac 4": u"",
|
||||
u"tÀche du bac 3": u"",
|
||||
u"COMMANDER CARTOUCHE": u"",
|
||||
u"CYAN": u"",
|
||||
u"MAGENTA": u"",
|
||||
}
|
||||
|
||||
try:
|
||||
comm = hptools.snmp(host="laserjet.adm.crans.org",version="1",community="public")
|
||||
liste_msg = []
|
||||
|
@ -35,6 +36,21 @@ def etat():
|
|||
liste_msg.append("[%s]" % unicode(err))
|
||||
return liste_msg
|
||||
|
||||
def etat_canon():
|
||||
try:
|
||||
liste_msg = []
|
||||
comm = hptools.snmp(host="imprimante.adm.crans.org", version="1", community="public")
|
||||
for i in [".hrPrinterStatus.1"; ".hrPrinterDetectedErrorState.1"]:
|
||||
msg = comm.get_string(oid)
|
||||
msg = dico.get(msg, msg)
|
||||
if msg: liste_msg.append(msg)
|
||||
except Exception,err:
|
||||
liste_msg.append("[%s]" % unicode(err))
|
||||
return liste_msg
|
||||
|
||||
def etat():
|
||||
exec ("etat_%()" % impression.imprimante)
|
||||
|
||||
def enregistre(filename="/usr/script/impression/imprimante.etat"):
|
||||
l = etat()
|
||||
fichier = open(filename,'w')
|
||||
|
|
|
@ -2,9 +2,9 @@ import crans.impression
|
|||
import crans.impression.digicode
|
||||
import crans.ldap_crans_test
|
||||
import os, sys
|
||||
# ######################################################## #
|
||||
# COMMAND LINE OPTION #
|
||||
# ######################################################## #
|
||||
# ######################################################## #
|
||||
# COMMAND LINE OPTION #
|
||||
# ######################################################## #
|
||||
#
|
||||
#
|
||||
OPTIONS_AGRAFES = {
|
||||
|
@ -14,7 +14,7 @@ OPTIONS_AGRAFES = {
|
|||
2: crans.impression.DEUX_AGRAPHE,
|
||||
3: crans.impression.TROIS_AGRAPHE,
|
||||
6: crans.impression.STITCHING,
|
||||
}
|
||||
}
|
||||
OPTIONS_NOIRETBLANC = {
|
||||
False: crans.impression.IMPRESSION_COULEUR,
|
||||
True: crans.impression.IMPRESSION_NB
|
||||
|
@ -24,28 +24,28 @@ OPTIONS_RECTOVERSO = {
|
|||
True: crans.impression.IMPRESSION_RECTO_VERSO
|
||||
}
|
||||
|
||||
from optparse import OptionParser
|
||||
|
||||
parser = OptionParser("usage: %prog [options] pdf")
|
||||
parser.add_option("-a", "--agrafes",
|
||||
action="store", type='int', dest="agrafes", default=0,
|
||||
help="Choix du mode d'agrafes (%s)" % ", ".join(["%s: %s" % (val, crans.impression.LABELS[OPTIONS_AGRAFES[val]]) for val in OPTIONS_AGRAFES.keys()]))
|
||||
parser.add_option("-p", "--papier",
|
||||
action="store", type="string", dest="typepapier",
|
||||
from optparse import OptionParser
|
||||
|
||||
parser = OptionParser("usage: %prog [options] pdf")
|
||||
parser.add_option("-a", "--agrafes",
|
||||
action="store", type='int', dest="agrafes", default=0,
|
||||
help="Choix du mode d'agrafes (%s)" % ", ".join(["%s: %s" % (val, crans.impression.LABELS[OPTIONS_AGRAFES[val]]) for val in OPTIONS_AGRAFES.keys()]))
|
||||
parser.add_option("-p", "--papier",
|
||||
action="store", type="string", dest="typepapier",
|
||||
help="Choix papier (%s)" % ", ".join(["%s: %s" % (val, crans.impression.LABELS[val]) for val in crans.impression.PAPIER_VALEURS_POSSIBLES]))
|
||||
parser.add_option("-r", "--recto-verso",
|
||||
parser.add_option("-r", "--recto-verso",
|
||||
action="store_true", dest="rectoverso", default=False,
|
||||
help="Impression recto-verso")
|
||||
parser.add_option("-c", "--copies",
|
||||
action="store", type="int", dest="copies",
|
||||
parser.add_option("-c", "--copies",
|
||||
action="store", type="int", dest="copies",
|
||||
help="Nombre de copies")
|
||||
|
||||
parser.add_option("-n", "--noir-et-blanc",
|
||||
action="store_true", dest="noiretblanc", default=False,
|
||||
parser.add_option("-n", "--noir-et-blanc",
|
||||
action="store_true", dest="noiretblanc", default=False,
|
||||
help="impression en noir et blanc")
|
||||
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
if len(args) != 1:
|
||||
parser.error("Nombre d'arguments incorect")
|
||||
|
@ -64,7 +64,7 @@ try:
|
|||
except crans.impression.SettingsError, e:
|
||||
print "erreur: %s" % e
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
lpr.printSettings()
|
||||
|
||||
print "Prix total : %s Euros" % str(lpr.prix())
|
||||
print "Prix total : %s Euros" % str(lpr.prix())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue