sed s/format/taille/g pour ne pas confondre le format du papier (maintenant

la taille : A3, A4) et le format du fichier (PS, PDF, ...).

darcs-hash:20050702003310-061a7-c91e517dd15903ebe87c369971639bd7414214aa.gz
This commit is contained in:
rozel 2005-07-02 02:33:10 +02:00
parent 274bced934
commit 7282b0e33c
4 changed files with 35 additions and 35 deletions

View file

@ -69,7 +69,7 @@ Il vous sera possible d'imprimer ce document sur Laserjet.
Voici le détail de votre devis, 100 unités correspondant à un Voici le détail de votre devis, 100 unités correspondant à un
remplissage total d'une face A4 : remplissage total d'une face A4 :
* Format : %(format)s * Format de papier : %(taille)s
* Pour une copie : * Pour une copie :
Noir : %(noir)s unités Noir : %(noir)s unités
Couleur : %(couleur)s unités Couleur : %(couleur)s unités
@ -79,7 +79,7 @@ remplissage total d'une face A4 :
Prix total : %(prix)s""" Prix total : %(prix)s"""
if prix.format=="NON_VALIDE": if prix.taille=="NON_VALIDE":
possible = u""" possible = u"""
ATTENTION : Le format de papier que vous avez choisi n'est pas valide. ATTENTION : Le format de papier que vous avez choisi n'est pas valide.
Il ne vous sera pas possible d'imprimer ce document sur Laserjet. Il ne vous sera pas possible d'imprimer ce document sur Laserjet.

View file

@ -41,7 +41,7 @@ if "media=transparency" in sys.argv:
prix = crans_backend.calcul_prix(nom_fic, "transparency") prix = crans_backend.calcul_prix(nom_fic, "transparency")
else: else:
prix = crans_backend.calcul_prix(nom_fic, "") prix = crans_backend.calcul_prix(nom_fic, "")
sys.stderr.write("DEBUG: Prix : %s format %s recto-verso : %s.\n" %(prix.c_total_euros, prix.format, prix.recto_v) ) sys.stderr.write("DEBUG: Prix : %s taille %s recto-verso : %s.\n" %(prix.c_total_euros, prix.taille, prix.recto_v) )
## Préparation des mails ## Préparation des mails

View file

@ -27,17 +27,17 @@ class cout:
faces=1 faces=1
pages=1 pages=1
nb_copie=1 nb_copie=1
format="NON_VALIDE" taille="NON_VALIDE"
erreur="" erreur=""
recto_v="None" recto_v="None"
media="" media=""
def __init__(self, fichierps, media="", mode_couleur="Couleur", recto_v="None", format="A4", nb_copie=1): def __init__(self, fichierps, media="", mode_couleur="Couleur", recto_v="None", taille="A4", nb_copie=1):
""" * fichierps est le fichier PostScript (ou pdf) à analyser """ * fichierps est le fichier PostScript (ou pdf) à analyser
* media vaut transparent le cas écheant (dans ce cas format=A4) * media vaut transparent le cas écheant (dans ce cas taille=A4)
* mode_couleur = Couleur pour traiter en couleur * mode_couleur = Couleur pour traiter en couleur
* recto_v = Recto si l'on ne desire pas un recto-verso * recto_v = Recto si l'on ne desire pas un recto-verso
* format vaut A3 ou A4 selon le bac choisi * taille vaut A3 ou A4 selon le bac choisi
* nb_copie est le nombre de copies désirées * nb_copie est le nombre de copies désirées
Le PostScript a toujours priorité sur ces parametres Le PostScript a toujours priorité sur ces parametres
""" """
@ -59,7 +59,7 @@ class cout:
ligne = original.readline() ligne = original.readline()
while ligne: while ligne:
if ligne.startswith('%%BeginFeature: *PageSize'): if ligne.startswith('%%BeginFeature: *PageSize'):
format=ligne.split(' ')[-1].replace('\n','') taille=ligne.split(' ')[-1].replace('\n','')
if ligne.startswith('%%BeginFeature: *Duplex'): if ligne.startswith('%%BeginFeature: *Duplex'):
recto_v=ligne.split(' ')[-1].replace('\n','') recto_v=ligne.split(' ')[-1].replace('\n','')
if ligne.find('%RBIBeginNonPPDFeature: *NumCopies') != -1: if ligne.find('%RBIBeginNonPPDFeature: *NumCopies') != -1:
@ -76,10 +76,10 @@ class cout:
if nb_copie_ps: if nb_copie_ps:
self.nb_copie=nb_copie_ps self.nb_copie=nb_copie_ps
if format=="A4" or format=="A3": if taille=="A4" or taille=="A3":
self.format=format self.taille=taille
else: # format invalide else: # taille invalide
self.erreur="Format invalide" self.erreur="Erreur : Taille invalide"
return return
if recto_v == "None" or recto_v == "Recto": if recto_v == "None" or recto_v == "Recto":
@ -94,19 +94,19 @@ class cout:
else: else:
device = "pnggray" device = "pnggray"
if (self.format == "A3"): if (self.taille == "A3"):
# Une feuille A3 couvre 2 fois plus de surface que A4 # Une feuille A3 couvre 2 fois plus de surface que A4
c_format = impression.c_a3 c_taille = impression.c_a3
cout_coul = 2*impression.c_coul cout_coul = 2*impression.c_coul
cout_noir = 2*impression.c_noir cout_noir = 2*impression.c_noir
else: else:
cout_coul = impression.c_coul cout_coul = impression.c_coul
cout_noir = impression.c_noir cout_noir = impression.c_noir
if (media == "transparent"): if (media == "transparent"):
c_format = impression.c_trans c_taille = impression.c_trans
self.media="transparent" self.media="transparent"
else: else:
c_format = impression.c_a4 c_taille = impression.c_a4
# Vérification du format de fichier. # Vérification du format de fichier.
try: try:
@ -116,7 +116,7 @@ class cout:
return return
# On vérifie que ce que l'on nous a envoyé est bien un PS ou un PDF # On vérifie que ce que l'on nous a envoyé est bien un PS ou un PDF
if en_tete!='%!PS' and en_tete!='%PDF': if en_tete!='%!PS' and en_tete!='%PDF':
self.erreur="ERREUR : Format non supporte !!" self.erreur="Format de fichier non supporte"
return return
(status,rep) = commands.getstatusoutput("nice -n 10 gs -sDEVICE=%s -r100 -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=50000000 -sOutputFile='%s' -q '%s'" % (device, fichier+"%d.png", fichier) ) (status,rep) = commands.getstatusoutput("nice -n 10 gs -sDEVICE=%s -r100 -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=50000000 -sOutputFile='%s' -q '%s'" % (device, fichier+"%d.png", fichier) )
@ -149,9 +149,9 @@ class cout:
else: else:
self.pages = int(self.faces/2.+0.5) self.pages = int(self.faces/2.+0.5)
if self.total_couleur > 0: if self.total_couleur > 0:
self.c_total = c_format*self.pages+(impression.c_tambour_coul+impression.c_tambour_noir)*self.faces+cout_noir*self.total_noir+cout_coul*self.total_couleur self.c_total = c_taille*self.pages+(impression.c_tambour_coul+impression.c_tambour_noir)*self.faces+cout_noir*self.total_noir+cout_coul*self.total_couleur
else: # Pas de couleur else: # Pas de couleur
self.c_total = c_format*self.pages+impression.c_tambour_noir*self.faces+cout_noir*self.total_noir self.c_total = c_taille*self.pages+impression.c_tambour_noir*self.faces+cout_noir*self.total_noir
else: # Utile pour la page web else: # Utile pour la page web
remplissage = [0, 0] # Noir, nombre de pages remplissage = [0, 0] # Noir, nombre de pages
for file in string.split(commands.getoutput("ls '%s'*.png" % (fichier)),"\n"): for file in string.split(commands.getoutput("ls '%s'*.png" % (fichier)),"\n"):
@ -166,7 +166,7 @@ class cout:
self.pages = self.faces # nb de pages par copies self.pages = self.faces # nb de pages par copies
else: else:
self.pages = int(self.faces/2.+0.5) self.pages = int(self.faces/2.+0.5)
self.c_total = c_format*self.pages+impression.c_tambour_noir*self.faces+cout_noir*self.total_noir self.c_total = c_taille*self.pages+impression.c_tambour_noir*self.faces+cout_noir*self.total_noir
self.c_total = int(self.nb_copie*self.c_total+impression.fact+0.5) # arrondi et facture self.c_total = int(self.nb_copie*self.c_total+impression.fact+0.5) # arrondi et facture
self.c_total_euros=float(self.c_total)/100 self.c_total_euros=float(self.c_total)/100
os.system("rm -f '%s'*.png" %(fichier)) os.system("rm -f '%s'*.png" %(fichier))
@ -182,17 +182,17 @@ class cout:
else : else :
str_cout = "%s euros" % (self.c_total/100.) str_cout = "%s euros" % (self.c_total/100.)
if self.format=="NON_VALIDE": if self.taille=="NON_VALIDE":
format=u"Le format de papier que vous avez demandé n'est pas valide" taille=u"Le format de papier que vous avez demandé n'est pas valide"
else: else:
if self.media=="transparent": if self.media=="transparent":
format="transparent A4" taille="transparent A4"
else: else:
format=self.format taille=self.taille
try: try:
return template % { 'prix' : str_cout } return template % { 'prix' : str_cout }
except: except:
return template % { 'noir' : self.total_noir, 'couleur' : self.total_couleur, 'faces' : self.faces, 'pages' : self.pages, 'copies' : self.nb_copie, 'format' : format, 'prix' : str_cout} return template % { 'noir' : self.total_noir, 'couleur' : self.total_couleur, 'faces' : self.faces, 'pages' : self.pages, 'copies' : self.nb_copie, 'taille' : taille, 'prix' : str_cout}
def html_cout(self): def html_cout(self):
@ -200,7 +200,7 @@ class cout:
# Format du PS (parfois different de celui choisi) # Format du PS (parfois different de celui choisi)
# Utile pour deboguage, sera supprime apres # Utile pour deboguage, sera supprime apres
template = """<b>Résultats : </b> template = """<b>Résultats : </b>
<ul><li><b>Format de l'impression</b> : %(format)s </li> <ul><li><b>Taille de l'impression</b> : %(taille)s </li>
<li><b>Pour une copie :</b> <li><b>Pour une copie :</b>
<ul><li>Noir : %(noir)s unités </li> <ul><li>Noir : %(noir)s unités </li>
<li>Couleur : %(couleur)s unités </li> <li>Couleur : %(couleur)s unités </li>

View file

@ -106,15 +106,15 @@ def calcul_prix(nom_fic, media):
""" """
## #Temporaire pour debugage ## #Temporaire pour debugage
## fs=open(nom_fic,'r') ## fs=open(nom_fic,'r')
## fd=open('/tmp/benoit_Routard','w') ## fd=open('/tmp/benoit_Routard','w')
## while 1: ## while 1:
## txt=fs.readline() ## txt=fs.readline()
## if txt == '': ## if txt == '':
## break ## break
## fd.write(txt) ## fd.write(txt)
## fs.close() ## fs.close()
## fd.close() ## fd.close()
# Calcul du cout de l'impression : # Calcul du cout de l'impression :
try: try: