diff --git a/impression/impression_canon.py b/impression/impression_canon.py index a3a14ca0..a1ebbe8c 100755 --- a/impression/impression_canon.py +++ b/impression/impression_canon.py @@ -192,15 +192,25 @@ class impression: elif line.startswith('Page size'): size = line.split() if len(size) <= 6: - raise FichierInvalide(u"Format de page inconnu: seuls les formats A3 et A4 sont supportes",path_to_pdf) - self._format = size[6] - if not self._format in ['(A4)','(A3)']: - raise FichierInvalide, u"Seuls les formats A3 et A4 sont supportes" + self._format = "Unknown" + else: + self._format = size[6] + self._width = float(size[2]) self._height = float(size[4]) + # Hack pour mieux reconnaître les formats + w = min(self._width,self._height) + h = max(self._width,self._height) + err = 20 + if abs(w - 595) < err and abs(h - 842) < err: + self._format = "(A4)" + elif abs(w - 842) < err and abs(h - 1180) < err: + self._format = "(A3)" if self._pages <= 0: raise FichierInvalide(u"Impossible de lire le nombre de pages",path_to_pdf) + if not self._format in ['(A4)','(A3)']: + raise FichierInvalide, u"Seuls les formats A3 et A4 sont supportes" # calcule le prix de l'encre tout de suite self._calcule_prix()