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
remplissage total d'une face A4 :
* Format : %(format)s
* Format de papier : %(taille)s
* Pour une copie :
Noir : %(noir)s unités
Couleur : %(couleur)s unités
@ -79,7 +79,7 @@ remplissage total d'une face A4 :
Prix total : %(prix)s"""
if prix.format=="NON_VALIDE":
if prix.taille=="NON_VALIDE":
possible = u"""
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.

View file

@ -41,7 +41,7 @@ if "media=transparency" in sys.argv:
prix = crans_backend.calcul_prix(nom_fic, "transparency")
else:
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

View file

@ -27,17 +27,17 @@ class cout:
faces=1
pages=1
nb_copie=1
format="NON_VALIDE"
taille="NON_VALIDE"
erreur=""
recto_v="None"
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
* 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
* 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
Le PostScript a toujours priorité sur ces parametres
"""
@ -59,7 +59,7 @@ class cout:
ligne = original.readline()
while ligne:
if ligne.startswith('%%BeginFeature: *PageSize'):
format=ligne.split(' ')[-1].replace('\n','')
taille=ligne.split(' ')[-1].replace('\n','')
if ligne.startswith('%%BeginFeature: *Duplex'):
recto_v=ligne.split(' ')[-1].replace('\n','')
if ligne.find('%RBIBeginNonPPDFeature: *NumCopies') != -1:
@ -76,10 +76,10 @@ class cout:
if nb_copie_ps:
self.nb_copie=nb_copie_ps
if format=="A4" or format=="A3":
self.format=format
else: # format invalide
self.erreur="Format invalide"
if taille=="A4" or taille=="A3":
self.taille=taille
else: # taille invalide
self.erreur="Erreur : Taille invalide"
return
if recto_v == "None" or recto_v == "Recto":
@ -94,19 +94,19 @@ class cout:
else:
device = "pnggray"
if (self.format == "A3"):
if (self.taille == "A3"):
# 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_noir = 2*impression.c_noir
else:
cout_coul = impression.c_coul
cout_noir = impression.c_noir
if (media == "transparent"):
c_format = impression.c_trans
c_taille = impression.c_trans
self.media="transparent"
else:
c_format = impression.c_a4
c_taille = impression.c_a4
# Vérification du format de fichier.
try:
@ -116,7 +116,7 @@ class cout:
return
# 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':
self.erreur="ERREUR : Format non supporte !!"
self.erreur="Format de fichier non supporte"
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) )
@ -149,9 +149,9 @@ class cout:
else:
self.pages = int(self.faces/2.+0.5)
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
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
remplissage = [0, 0] # Noir, nombre de pages
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
else:
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_euros=float(self.c_total)/100
os.system("rm -f '%s'*.png" %(fichier))
@ -182,17 +182,17 @@ class cout:
else :
str_cout = "%s euros" % (self.c_total/100.)
if self.format=="NON_VALIDE":
format=u"Le format de papier que vous avez demandé n'est pas valide"
if self.taille=="NON_VALIDE":
taille=u"Le format de papier que vous avez demandé n'est pas valide"
else:
if self.media=="transparent":
format="transparent A4"
taille="transparent A4"
else:
format=self.format
taille=self.taille
try:
return template % { 'prix' : str_cout }
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):
@ -200,7 +200,7 @@ class cout:
# Format du PS (parfois different de celui choisi)
# Utile pour deboguage, sera supprime apres
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>
<ul><li>Noir : %(noir)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
## fs=open(nom_fic,'r')
## fd=open('/tmp/benoit_Routard','w')
## while 1:
## txt=fs.readline()
## if txt == '':
## break
## fd.write(txt)
## fs.close()
## fd.close()
## fs=open(nom_fic,'r')
## fd=open('/tmp/benoit_Routard','w')
## while 1:
## txt=fs.readline()
## if txt == '':
## break
## fd.write(txt)
## fs.close()
## fd.close()
# Calcul du cout de l'impression :
try: