[impression_canon] Detection du paysage
Rajoute la detection du format paysage et nazifie sur le format d'entrée (A3 ou A4 only). Ca semble marcher, wait & see darcs-hash:20111005234109-4a1ec-f819552d67abbbd32a78cc79ce9aa25a603bd917.gz
This commit is contained in:
parent
a213002c1e
commit
ea5009d895
1 changed files with 28 additions and 4 deletions
|
@ -152,6 +152,12 @@ class impression:
|
||||||
_base_prix_nb = 0.0
|
_base_prix_nb = 0.0
|
||||||
_base_prix_couleurs = 0.0
|
_base_prix_couleurs = 0.0
|
||||||
|
|
||||||
|
# Format du pdf, tout droit sorti de pdfinfo
|
||||||
|
# (les dimensions sont donc en pts)
|
||||||
|
_format = '(A4)'
|
||||||
|
_width = 595.28
|
||||||
|
_height = 841.89
|
||||||
|
|
||||||
def __init__(self, path_to_pdf, adh = None):
|
def __init__(self, path_to_pdf, adh = None):
|
||||||
"""impression(path_to_pdf [, adh])
|
"""impression(path_to_pdf [, adh])
|
||||||
|
|
||||||
|
@ -174,11 +180,27 @@ class impression:
|
||||||
if not open(path_to_pdf).read().startswith("%PDF"):
|
if not open(path_to_pdf).read().startswith("%PDF"):
|
||||||
raise FichierInvalide, ("Le fichier ne semble pas etre un PDF", path_to_pdf)
|
raise FichierInvalide, ("Le fichier ne semble pas etre un PDF", path_to_pdf)
|
||||||
|
|
||||||
# on compte les pages
|
# on compte les pages et on regarde le format
|
||||||
try:
|
try:
|
||||||
self._pages = int(os.popen("pdfinfo %s | egrep ^Pages " % (self._fichier)).readline().split()[1])
|
self._pdfinfo = os.popen("pdfinfo %s" % (self._fichier))
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
raise FichierInvalide, u"pdfinfo n'arrive pas a lire le fichier (fichier protege par mot de passe?)"
|
raise FichierInvalide, u"pdfinfo n'arrive pas a lire le fichier (fichier protege par mot de passe?)"
|
||||||
|
self._pages = -1
|
||||||
|
for line in self._pdfinfo:
|
||||||
|
if line.startswith('Pages'):
|
||||||
|
self._pages = int(line.split()[1])
|
||||||
|
elif line.startswith('Page size'):
|
||||||
|
size = line.split()
|
||||||
|
if len(size) <= 6:
|
||||||
|
raise FichierInvalide, u"Format de page inconnu"
|
||||||
|
self._format = size[6]
|
||||||
|
if not self._format in ['(A4)','(A3)']:
|
||||||
|
raise FichierInvalide, u"Seuls les formats A3 et A4 sont supportés"
|
||||||
|
self._width = float(size[2])
|
||||||
|
self._height = float(size[4])
|
||||||
|
self._format = size[6]
|
||||||
|
if self._pages <= 0:
|
||||||
|
raise FichierInvalide, u"Impossible de lire le nombre de pages"
|
||||||
|
|
||||||
# calcule le prix de l'encre tout de suite
|
# calcule le prix de l'encre tout de suite
|
||||||
self._calcule_prix()
|
self._calcule_prix()
|
||||||
|
@ -204,7 +226,7 @@ class impression:
|
||||||
"""changeSettings([keyword=value])
|
"""changeSettings([keyword=value])
|
||||||
|
|
||||||
Change les parametres de l'impression, recalcule et renvoie le nouveau prix.
|
Change les parametres de l'impression, recalcule et renvoie le nouveau prix.
|
||||||
Lève une exception SettingError si les paramètres sont invalides.
|
Lève une exceotion SettingError si les paramètres son invalides.
|
||||||
"""
|
"""
|
||||||
#recalcule et renvoie le prix
|
#recalcule et renvoie le prix
|
||||||
|
|
||||||
|
@ -245,12 +267,14 @@ class impression:
|
||||||
if livret == "False": livret = False
|
if livret == "False": livret = False
|
||||||
if livret in [True, False]:
|
if livret in [True, False]:
|
||||||
self._settings['livret'] = livret
|
self._settings['livret'] = livret
|
||||||
self._settings['portrait'] = not(livret)
|
|
||||||
if livret:
|
if livret:
|
||||||
|
self._settings['portrait'] = False
|
||||||
self._settings['recto_verso'] = True
|
self._settings['recto_verso'] = True
|
||||||
self._settings['agrafage'] = 'None'
|
self._settings['agrafage'] = 'None'
|
||||||
if self._settings['papier'] == 'A4tr':
|
if self._settings['papier'] == 'A4tr':
|
||||||
self._settings['papier'] = 'A4'
|
self._settings['papier'] = 'A4'
|
||||||
|
else:
|
||||||
|
self._settings['portrait'] = self._width < self._height
|
||||||
|
|
||||||
return self._calcule_prix()
|
return self._calcule_prix()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue