Simplification des messages d'erreur pour les adhrents et ajout d'un test pour voir si le fichier est bien pdf

darcs-hash:20061116222504-f46e9-1a7343559bbf6b98e2d1a22ced1162413720f418.gz
This commit is contained in:
gdetrez 2006-11-16 23:25:04 +01:00
parent dce073de67
commit cb801d4734
2 changed files with 25 additions and 6 deletions

View file

@ -121,7 +121,14 @@ LPR_OPTIONS = {
# #
# #
class FichierInvalide(Exception): class FichierInvalide(Exception):
pass def __str__(self):
return self.args[0]
def file(self):
try:
return self.args[1]
except:
return "n/a"
class SoldeInsuffisant(Exception): class SoldeInsuffisant(Exception):
pass pass
class PrintError(Exception): class PrintError(Exception):
@ -158,15 +165,21 @@ class impression:
def __init__(self, path_to_pdf, adh = None): def __init__(self, path_to_pdf, adh = None):
self._fichier = path_to_pdf self._fichier = path_to_pdf
# on verifie que le fichier existe
if not os.path.isfile(path_to_pdf): if not os.path.isfile(path_to_pdf):
raise FichierInvalide, "Nom de fichier invalide (%s)" % path_to_pdf raise FichierInvalide, ("Fichier introuvable", path_to_pdf)
if not open(path_to_pdf).read().startswith("%PDF"):
raise FichierInvalide, ("Le fichier ne semble pas etre un PDF", path_to_pdf)
os.system("/usr/scripts/impression/compatibilise %s" % escapeForShell( path_to_pdf ) ) os.system("/usr/scripts/impression/compatibilise %s" % escapeForShell( path_to_pdf ) )
self._adh = adh self._adh = adh
# calcule le prix de l'encre tout de suite # calcule le prix de l'encre tout de suite
try:
self._base_prix_couleurs, self._nb_pages = cout.base_prix_couleurs(path_to_pdf) self._base_prix_couleurs, self._nb_pages = cout.base_prix_couleurs(path_to_pdf)
self._base_prix_nb, self._nb_pages = cout.base_prix_nb(path_to_pdf) self._base_prix_nb, self._nb_pages = cout.base_prix_nb(path_to_pdf)
except:
raise FichierInvalide, ("PDF bugge, Analyse impossible.", path_to_pdf)
self._calcule_prix() self._calcule_prix()

View file

@ -50,7 +50,13 @@ COUT_PASSAGE_TAMBOUR_COULEUR = config.impression.c_tambour_coul
# #
# #
class FichierInvalide(Exception): class FichierInvalide(Exception):
pass def __str__(self):
return self.args[0]
def file(self):
try:
return self.args[1]
except:
return "n/a"
# ########################################################### # # ########################################################### #
# PRIX COULEURS # # PRIX COULEURS #
# ########################################################### # # ########################################################### #
@ -67,7 +73,7 @@ def base_prix_couleurs(path_fichier_pdf):
# Convertit les pdf en png couleur # Convertit les pdf en png couleur
(status, rep) = commands.getstatusoutput("nice -n 5 gs -sDEVICE=png16m -r30 -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=50000000 -sOutputFile=%s%%d -q %s" % (nom_png, escapeForShell(path_fichier_pdf))) (status, rep) = commands.getstatusoutput("nice -n 5 gs -sDEVICE=png16m -r30 -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=50000000 -sOutputFile=%s%%d -q %s" % (nom_png, escapeForShell(path_fichier_pdf)))
if status: if status:
raise FichierInvalide("ERREUR %s : Fichier invalide. Aucun png cree. (couleurs)" % status) raise FichierInvalide, "ERREUR %s : Fichier invalide. Aucun png cree. (couleurs)" % status
# Récupère la liste des fichiers # Récupère la liste des fichiers
list_filepng=os.listdir(nom_rep) list_filepng=os.listdir(nom_rep)