On utilise enfin les fichiers temporaires de la manire suggre par
tienne le ... 08 avril ... darcs-hash:20050708103542-061a7-9078457a6b617c759912c79e170148398b6cfc24.gz
This commit is contained in:
parent
ec786fb962
commit
4c898c21f8
1 changed files with 17 additions and 27 deletions
|
@ -10,8 +10,7 @@
|
||||||
import locale
|
import locale
|
||||||
locale.setlocale(locale.LC_ALL, 'fr_FR')
|
locale.setlocale(locale.LC_ALL, 'fr_FR')
|
||||||
|
|
||||||
import commands, os, string, sys
|
import commands, os, string, sys, tempfile
|
||||||
import tempfile # non utilisé en ce moment
|
|
||||||
|
|
||||||
sys.path.append('/usr/scripts/gestion')
|
sys.path.append('/usr/scripts/gestion')
|
||||||
from config import impression
|
from config import impression
|
||||||
|
@ -19,10 +18,8 @@ from config import impression
|
||||||
|
|
||||||
class cout:
|
class cout:
|
||||||
"""Classe pour le calcul du cout d'une impression et de sa mise en page"""
|
"""Classe pour le calcul du cout d'une impression et de sa mise en page"""
|
||||||
#en centimes
|
c_total=0 # en centimes
|
||||||
c_total=0
|
c_total_euros=0 # en euros
|
||||||
#en euros
|
|
||||||
c_total_euros=0
|
|
||||||
total_noir=0
|
total_noir=0
|
||||||
total_couleur=0
|
total_couleur=0
|
||||||
faces=1
|
faces=1
|
||||||
|
@ -42,7 +39,7 @@ class cout:
|
||||||
* recto_v = Recto si l'on ne desire pas un recto-verso
|
* recto_v = Recto si l'on ne desire pas un recto-verso
|
||||||
* taille 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 paramètres
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Vérification du format de fichier.
|
# Vérification du format de fichier.
|
||||||
|
@ -59,14 +56,9 @@ class cout:
|
||||||
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
|
||||||
original=open(fichierps)
|
original = open(fichierps)
|
||||||
fichier='/tmp/couts_temp'
|
fichier = tempfile.NamedTemporaryFile().name
|
||||||
try:
|
fic = open(fichier,'w')
|
||||||
fic = open(fichier,'w')
|
|
||||||
except:
|
|
||||||
os.remove(fichier)
|
|
||||||
fic = open(fichier,'w')
|
|
||||||
# fic = tempfile.NamedTemporaryFile()
|
|
||||||
ligne = original.readline()
|
ligne = original.readline()
|
||||||
while ligne:
|
while ligne:
|
||||||
if ligne.startswith('%%BeginFeature: *PageSize') or ligne.startswith('%%BeginFeature: *PageRegion'):
|
if ligne.startswith('%%BeginFeature: *PageSize') or ligne.startswith('%%BeginFeature: *PageRegion'):
|
||||||
|
@ -95,6 +87,7 @@ class cout:
|
||||||
self.taille=taille
|
self.taille=taille
|
||||||
if not (taille=="A4" or taille=="A3"):
|
if not (taille=="A4" or taille=="A3"):
|
||||||
self.erreur="Taille invalide"
|
self.erreur="Taille invalide"
|
||||||
|
os.remove(fichier)
|
||||||
return
|
return
|
||||||
|
|
||||||
if recto_v == "None" or recto_v == "Recto":
|
if recto_v == "None" or recto_v == "Recto":
|
||||||
|
@ -124,18 +117,19 @@ class cout:
|
||||||
c_taille = impression.c_a4
|
c_taille = impression.c_a4
|
||||||
|
|
||||||
(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) )
|
||||||
|
# On n'a plus besoin du fichier temp, donc on le supprime.
|
||||||
|
os.remove(fichier)
|
||||||
|
|
||||||
if (status != 0):
|
if (status != 0):
|
||||||
self.erreur="ERREUR : Ghostscript : Fichier Postscript invalide.\n"
|
self.erreur="ERREUR : Ghostscript : Fichier Postscript invalide.\n"
|
||||||
self.erreur="Le message d'erreur est le suivant :\n"
|
|
||||||
self.erreur+= rep
|
self.erreur+= rep
|
||||||
# On détaille l'erreur dans le mail et
|
# On détaille l'erreur dans le mail et
|
||||||
# il faut stopper l'impression.
|
# il faut stopper l'impression.
|
||||||
return
|
return
|
||||||
|
|
||||||
# On a plus besoin du fichier temp, donc on le supprime.
|
if os.system("ls '%s'*.png > /dev/null" % (fichier)):
|
||||||
os.remove(fichier)
|
self.erreur=u"ERREUR : Fichier postscript invalide. Aucun png n'a été créé\n"
|
||||||
|
else:
|
||||||
if not os.system("ls '%s'*.png > /dev/null" % (fichier)):
|
|
||||||
if (mode_couleur == "Couleur"):
|
if (mode_couleur == "Couleur"):
|
||||||
remplissage = [0, 0, 0, 0, 0] # C, M, J, N, nombre de pages
|
remplissage = [0, 0, 0, 0, 0] # C, M, J, N, 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"):
|
||||||
|
@ -179,9 +173,6 @@ class cout:
|
||||||
self.str_cout = "%s euros" % (self.c_total_euros)
|
self.str_cout = "%s euros" % (self.c_total_euros)
|
||||||
|
|
||||||
os.system("rm -f '%s'*.png" %(fichier))
|
os.system("rm -f '%s'*.png" %(fichier))
|
||||||
else:
|
|
||||||
self.erreur=u"ERREUR : Fichier Postscript invalide. Aucun png n'a été créé\n"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def remplis_template(self,template):
|
def remplis_template(self,template):
|
||||||
|
@ -189,10 +180,9 @@ class cout:
|
||||||
|
|
||||||
if self.erreur=="Taille invalide":
|
if self.erreur=="Taille invalide":
|
||||||
taille="Le format de papier que vous avez demandé n'est pas valide"
|
taille="Le format de papier que vous avez demandé n'est pas valide"
|
||||||
|
elif self.media=="transparent":
|
||||||
|
taille="transparent A4"
|
||||||
else:
|
else:
|
||||||
if self.media=="transparent":
|
taille=self.taille
|
||||||
taille="transparent A4"
|
|
||||||
else:
|
|
||||||
taille=self.taille
|
|
||||||
|
|
||||||
return template % { 'noir' : self.total_noir, 'couleur' : self.total_couleur, 'faces' : self.faces, 'pages' : self.pages, 'copies' : self.nb_copie, 'taille' : taille, 'prix' : self.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' : self.str_cout}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue