[impression_canon] -o landscape pour le recto-verso

darcs-hash:20111006161440-28565-21d8c3dd06f359bc1ddff854fed62fb71b2bfb5d.gz
This commit is contained in:
Daniel STAN 2011-10-06 18:14:40 +02:00
parent 6c85740dd2
commit 60c4f0935f

View file

@ -35,6 +35,7 @@ sys.path.append('/usr/scripts/gestion')
from config import impression as config_impression
from commands import getstatusoutput
import crans.utils.logs
from subprocess import Popen, PIPE
# ######################################################## #
# CONSTANTES #
@ -181,26 +182,24 @@ class impression:
raise FichierInvalide, ("Le fichier ne semble pas etre un PDF", path_to_pdf)
# on compte les pages et on regarde le format
try:
self._pdfinfo = os.popen("pdfinfo %s" % (self._fichier))
except Exception, e:
raise FichierInvalide, u"pdfinfo n'arrive pas a lire le fichier (fichier protege par mot de passe?)"
pdfinfo = Popen(["pdfinfo",self._fichier],stdout=PIPE,stderr=PIPE).communicate()
if pdfinfo[1] <> '':
raise FichierInvalide(u"pdfinfo n'arrive pas a lire le fichier (il est peut-etre corrompu ou protege par un mot de passe)",path_to_pdf)
self._pages = -1
for line in self._pdfinfo:
for line in pdfinfo[0].split('\n'):
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"
raise FichierInvalide(u"Format de page inconnu",path_to_pdf)
self._format = size[6]
if not self._format in ['(A4)','(A3)']:
raise FichierInvalide, u"Seuls les formats A3 et A4 sont supportés"
raise FichierInvalide, u"Seuls les formats A3 et A4 sont supportes"
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"
raise FichierInvalide(u"Impossible de lire le nombre de pages",path_to_pdf)
# calcule le prix de l'encre tout de suite
self._calcule_prix()
@ -460,7 +459,7 @@ class impression:
options += ' -o sides=one-sided'
else:
if self._settings['recto_verso']:
options += ' -o sides=two-sided-short-edge'
options += ' -o sides=two-sided-short-edge -o landscape'
else:
options += ' -o sides=one-sided -o landscape'
if self._settings['couleur']: