Gestion de la couleur et du format transparent.
faces est un entier. Changement du format de sortie qui devrait tre plus comprhensible au niveau de la signification des paramtres. darcs-hash:20050629084822-061a7-66f6562530f61dcbe37dbcab8694c403f5b90b4a.gz
This commit is contained in:
parent
c2c069d820
commit
a2bc55607a
1 changed files with 31 additions and 19 deletions
|
@ -3,8 +3,8 @@
|
||||||
|
|
||||||
# Utilisé par /var/www/impression/analyse.py
|
# Utilisé par /var/www/impression/analyse.py
|
||||||
# /usr/lib/cups/backend/devis et /usr/lib/cups/backend/laserjet
|
# /usr/lib/cups/backend/devis et /usr/lib/cups/backend/laserjet
|
||||||
# Écrit par Benoit
|
# Écrit initial par Benoit
|
||||||
# modifié par Brice DUBOST
|
# modifié par Brice DUBOST et Benoit
|
||||||
|
|
||||||
import locale
|
import locale
|
||||||
locale.setlocale(locale.LC_ALL, 'fr_FR')
|
locale.setlocale(locale.LC_ALL, 'fr_FR')
|
||||||
|
@ -30,17 +30,21 @@ class cout:
|
||||||
format="NON_VALIDE"
|
format="NON_VALIDE"
|
||||||
erreur=""
|
erreur=""
|
||||||
recto_v="None"
|
recto_v="None"
|
||||||
|
media=""
|
||||||
|
|
||||||
def __init__(self,fichierps, mode_couleur, recto_v="None", format="A4", nb_copie=1, media="" ):
|
def __init__(self, fichierps, media="", mode_couleur="Couleur", recto_v="None", format="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)
|
||||||
* 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
|
* format 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
|
||||||
* media vaut transparent le cas écheant (dans ce cas format=A4)
|
|
||||||
Le PostScript a toujours priorité sur ces parametres
|
Le PostScript a toujours priorité sur ces parametres
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Pour la couleur, je n'ai pas trouve de methode valables tout le temps
|
||||||
|
# Le plus simple reste donc de voir s'il y a 0% de couleur dans le ps.
|
||||||
|
|
||||||
self.nb_copie=nb_copie
|
self.nb_copie=nb_copie
|
||||||
# on compte le nb de copies et on enlève les balises pour ne pas recalculer
|
# on compte le nb de copies et on enlève les balises pour ne pas recalculer
|
||||||
nb_copie_ps=0
|
nb_copie_ps=0
|
||||||
|
@ -100,6 +104,7 @@ class cout:
|
||||||
cout_noir = impression.c_noir
|
cout_noir = impression.c_noir
|
||||||
if (media == "transparent"):
|
if (media == "transparent"):
|
||||||
c_format = impression.c_trans
|
c_format = impression.c_trans
|
||||||
|
self.media="transparent"
|
||||||
else:
|
else:
|
||||||
c_format = impression.c_a4
|
c_format = impression.c_a4
|
||||||
|
|
||||||
|
@ -138,13 +143,16 @@ class cout:
|
||||||
os.system("rm -f '%s'" % (file))
|
os.system("rm -f '%s'" % (file))
|
||||||
self.total_noir = remplissage[3]
|
self.total_noir = remplissage[3]
|
||||||
self.total_couleur = sum(remplissage[0:3])
|
self.total_couleur = sum(remplissage[0:3])
|
||||||
self.faces = remplissage[4]
|
self.faces = int(remplissage[4])
|
||||||
if (recto_v == "Recto"):
|
if (recto_v == "Recto"):
|
||||||
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)
|
||||||
|
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_format*self.pages+(impression.c_tambour_coul+impression.c_tambour_noir)*self.faces+cout_noir*self.total_noir+cout_coul*self.total_couleur
|
||||||
else:
|
else: # Pas de couleur
|
||||||
|
self.c_total = c_format*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
|
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"):
|
||||||
resultats = commands.getoutput("/usr/scripts/impression/percentblack '%s'" % (file))
|
resultats = commands.getoutput("/usr/scripts/impression/percentblack '%s'" % (file))
|
||||||
|
@ -153,7 +161,7 @@ class cout:
|
||||||
remplissage[1] += float(l_resultats[1])
|
remplissage[1] += float(l_resultats[1])
|
||||||
os.system("rm -f '%s'" % (file))
|
os.system("rm -f '%s'" % (file))
|
||||||
self.total_noir = remplissage[0]
|
self.total_noir = remplissage[0]
|
||||||
self.faces = remplissage[1]
|
self.faces = int(remplissage[1])
|
||||||
if (recto_v == "Recto"):
|
if (recto_v == "Recto"):
|
||||||
self.pages = self.faces # nb de pages par copies
|
self.pages = self.faces # nb de pages par copies
|
||||||
else:
|
else:
|
||||||
|
@ -163,7 +171,7 @@ class cout:
|
||||||
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))
|
||||||
else:
|
else:
|
||||||
self.erreur=u"ERREUR : Fichier Postscript invalide. aucun png a été créé\n"
|
self.erreur=u"ERREUR : Fichier Postscript invalide. Aucun png n'a été créé\n"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -176,27 +184,31 @@ class cout:
|
||||||
|
|
||||||
if self.format=="NON_VALIDE":
|
if self.format=="NON_VALIDE":
|
||||||
format=u"Le format de papier que vous avez demandé n'est pas valide"
|
format=u"Le format de papier que vous avez demandé n'est pas valide"
|
||||||
|
else:
|
||||||
|
if self.media=="transparent":
|
||||||
|
format="transparent A4"
|
||||||
else:
|
else:
|
||||||
format=self.format
|
format=self.format
|
||||||
try:
|
try:
|
||||||
return template % { 'prix' : str_cout }
|
return template % { 'prix' : str_cout }
|
||||||
except:
|
except:
|
||||||
return template % { 'noir' : "%2.2f" % (self.total_noir/self.faces), 'couleur' : "%2.2f" % (self.total_couleur/self.faces), 'faces' :int(self.faces), 'pages' : int(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, 'format' : format, 'prix' : str_cout}
|
||||||
|
|
||||||
|
|
||||||
def html_cout(self):
|
def html_cout(self):
|
||||||
"""Renvoie le cout formaté en html"""
|
"""Renvoie le cout formaté en html"""
|
||||||
# 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 = """<h2>Résultats : </h2>
|
template = """<b>Résultats : </b>
|
||||||
<ul><li><b>Format de l'impression</b> : %(format)s </li>
|
<ul><li><b>Format de l'impression</b> : %(format)s </li>
|
||||||
<li><b>Noir (par copie)</b> : %(noir)s%% </li>
|
<li><b>Pour une copie :</b>
|
||||||
<li><b>Couleur (par copie)</b> : %(couleur)s%% </li>
|
<ul><li>Noir : %(noir)s unités </li>
|
||||||
<li><b>Nombre de faces (par copie)</b> : %(faces)s </li>
|
<li>Couleur : %(couleur)s unités </li>
|
||||||
<li><b>Nombre de pages (par copie)</b> : %(pages)s </li>
|
<li>Nombre de faces : %(faces)s </li>
|
||||||
<li><b>Nombre de copies</b> : %(copies)s</li></ul><br>
|
<li>Nombre de pages : %(pages)s </li></ul></li>
|
||||||
<br><b>Prix total : %(prix)s </b>
|
<li><b>Nombre de copies</b> : %(copies)s </li></ul>
|
||||||
</p>\n<p>
|
<br>
|
||||||
|
<font size="3"><b>Prix total : %(prix)s </b></font>
|
||||||
</p>\n"""
|
</p>\n"""
|
||||||
|
|
||||||
if not self.erreur:
|
if not self.erreur:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue