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:
parent
274bced934
commit
7282b0e33c
4 changed files with 35 additions and 35 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue