Inutile de regarder les arguments, les options sont dans le postscript.

darcs-hash:20050708093415-061a7-571cfdc60a0e7233b69b7cb0c1638e59585b3a4b.gz
This commit is contained in:
rozel 2005-07-08 11:34:15 +02:00
parent 666af63770
commit 5943070bd1

View file

@ -19,7 +19,7 @@ def preliminaires(arguments, description):
sinon sort sans stopper. sinon sort sans stopper.
""" """
#\x1B est le caractere d'échappement échap. # \x1B est le caractere d'échappement échap.
UEL="\x1B%-12345X" UEL="\x1B%-12345X"
if len(arguments) == 1 : if len(arguments) == 1 :
@ -28,7 +28,7 @@ def preliminaires(arguments, description):
if len(arguments) not in (6, 7) : if len(arguments) not in (6, 7) :
sys.stderr.write("ERROR: %s job-id user title copies options [file]\n" % arguments[0]) sys.stderr.write("ERROR: %s job-id user title copies options [file]\n" % arguments[0])
sys.exit(0) # On n'arrete pas l'imprimante sys.exit(0) # On n'arrête pas l'imprimante
if arguments[-1].find('/') != -1 : if arguments[-1].find('/') != -1 :
try: try:
@ -38,20 +38,20 @@ def preliminaires(arguments, description):
# Des fois les options contiennent un / ... # Des fois les options contiennent un / ...
entree = sys.stdin entree = sys.stdin
else : else :
# Lecture sur entree standard # Lecture sur entrée standard
entree = sys.stdin entree = sys.stdin
## On nettoie le fichier : ## On nettoie le fichier :
fic = tempfile.NamedTemporaryFile() fic = tempfile.NamedTemporaryFile()
ligne = entree.readline() ligne = entree.readline()
# On rends le fichier propre et on enleve les options qui nous gènent # On enlève les options qui nous gènent et on rend le fichier propre
while ligne: while ligne:
#On ne choisit pas le bac de sortie # On ne choisit pas le bac de sortie
if ligne.find('%%BeginFeature: *OutputBin') != -1: if ligne.find('%%BeginFeature: *OutputBin') != -1:
while ligne.find('%%EndFeature') == -1: while ligne.find('%%EndFeature') == -1:
ligne = entree.readline() ligne = entree.readline()
ligne = entree.readline() ligne = entree.readline()
#On ne choisit pas le bac d'entree sauf si transparent # On ne choisit pas le bac d'entree sauf si transparent
if ligne.find('%%BeginFeature: *InputSlot') != -1: if ligne.find('%%BeginFeature: *InputSlot') != -1:
if ligne.find('Transparency') == -1: if ligne.find('Transparency') == -1:
while ligne.find('%%EndFeature') == -1: while ligne.find('%%EndFeature') == -1:
@ -101,11 +101,8 @@ def utilisateur(user, rw):
return adherent return adherent
def calcul_prix(nom_fic, arguments): def calcul_prix(nom_fic):
"""Calcul le prix d'une impression """Calcul le prix du fichier nom_fic"""
* nom_fic est le nom du fichier à imprimmer
* arguments argv du backend
"""
## #Temporaire pour debugage ## #Temporaire pour debugage
## fs=open(nom_fic,'r') ## fs=open(nom_fic,'r')
@ -120,26 +117,21 @@ def calcul_prix(nom_fic, arguments):
# Calcul du cout de l'impression : # Calcul du cout de l'impression :
try: try:
if "media=transparency" in arguments or "InputSlot=Transparency" in arguments: prix = couts.cout(nom_fic)
prix = couts.cout(nom_fic, "transparent")
else:
prix = couts.cout(nom_fic, "")
except: except:
sys.stderr.write("ERROR: Erreur : Impossible de calculer le couts de %s." % nom_fic) sys.stderr.write("ERROR: Erreur : Impossible de calculer le couts de %s." % nom_fic)
sys.exit(1) # On arrete l'imprimante sys.exit(1) # On arrete l'imprimante
if prix.erreur == "Taille invalide": if prix.erreur == "Taille invalide":
sys.stderr.write("ERROR: Erreur de taille de papier (%s) \n" % prix.taille) sys.stderr.write("ERROR: Erreur de taille de papier (%s).\n" % prix.taille)
elif prix.erreur: elif prix.erreur:
sys.stderr.write("ERROR: Erreur du calcul du prix : %s \n" % prix.erreur) sys.stderr.write("ERROR: Erreur du calcul du prix : %s.\n" % prix.erreur)
else: else:
sys.stderr.write("DEBUG: Prix calcule : %s euros (%s, %s).\n" % (prix.c_total_euros, prix.taille, prix.recto_v) ) sys.stderr.write("DEBUG: Prix calcule : %s euros (%s, %s).\n" % (prix.c_total_euros, prix.taille, prix.recto_v) )
return prix return prix
def send_email(sender, recipient, subject, body): def send_email(sender, recipient, subject, body):
"""Send an email. """Send an email.