Ajout de la possibilité de perforer ses pages

This commit is contained in:
Gabriel Detraz 2015-04-07 22:57:50 +02:00
parent 66f3fd0707
commit 25022bde92

View file

@ -53,11 +53,11 @@ class Option(object):
value = None value = None
def __str__(self): def __str__(self):
return str(value) return str(self.value)
name = "option" name = "option"
pretty_name = u"option quelconque" pretty_name = u"option quelconque"
def parse(self, v): def parse(self, v):
self.value = v self.value = v
@ -71,7 +71,7 @@ class BooleanOption(Option):
class Couleur(BooleanOption): class Couleur(BooleanOption):
name = "couleur" name = "couleur"
pretty_name = u"impression couleur" pretty_name = u"impression couleur"
class Livret(BooleanOption): class Livret(BooleanOption):
name = "livret" name = "livret"
pretty_name = u"livret piqûres à cheval" pretty_name = u"livret piqûres à cheval"
@ -98,7 +98,7 @@ class SelectOption(Option):
} }
value = None value = None
def parse(self, v): def parse(self, v):
if v == 'None': if v == 'None':
v = None v = None
@ -180,9 +180,9 @@ class impression(object):
_fichier = "" _fichier = ""
# adhérent (instance) # adhérent (instance)
_adh = None _adh = None
# paramètres # paramètres
_settings_list = [ _settings_list = [
Agrafage, Agrafage,
Papier, Papier,
Couleur, Couleur,
Duplex, Duplex,
@ -206,7 +206,7 @@ class impression(object):
_format = '(A4)' _format = '(A4)'
_width = 595.28 _width = 595.28
_height = 841.89 _height = 841.89
# Jid unique, à définir avant l'impression # Jid unique, à définir avant l'impression
_jid = 0 _jid = 0
@ -286,7 +286,7 @@ class impression(object):
newfile = '/tmp/' + self.fileName()[-4] + '-book.pdf' newfile = '/tmp/' + self.fileName()[-4] + '-book.pdf'
newfile = '/tmp/book.pdf' newfile = '/tmp/book.pdf'
check_output( check_output(
['/usr/bin/pdfjam', self._fichier, ['/usr/bin/pdfjam', self._fichier,
livret.pdfjam_order(self._pages), livret.pdfjam_order(self._pages),
'-o', newfile, '-o', newfile,
]) ])
@ -454,7 +454,7 @@ class impression(object):
# Pour spécifier un jobname de la forme jid:adh:nom_du_fichier # Pour spécifier un jobname de la forme jid:adh:nom_du_fichier
jobname = '%d:%s:%s' % (self._jid, self._adh, self._fichier.split('/')[-1].replace("\"","\\\"")) jobname = '%d:%s:%s' % (self._jid, self._adh, self._fichier.split('/')[-1].replace("\"","\\\""))
options += ['-t', jobname] options += ['-t', jobname]
#Pour le nombre de copies et specifie non assemblee #Pour le nombre de copies et specifie non assemblee
options += ['-n', str(self._settings['copies'].value)] options += ['-n', str(self._settings['copies'].value)]
#Et on ne les veux pas assemblées (sic) #Et on ne les veux pas assemblées (sic)
@ -466,7 +466,7 @@ class impression(object):
options += ['-o', 'pdf-expand', options += ['-o', 'pdf-expand',
'-o', 'pdf-paper=841x1190', '-o', 'pdf-paper=841x1190',
'-o', 'PageSize=A3'] '-o', 'PageSize=A3']
# Toujours resize (pour éviter que l'imprimante ne deadlock) # Toujours resize (pour éviter que l'imprimante ne deadlock)
options += ['-o', 'fit-to-page'] options += ['-o', 'fit-to-page']
@ -482,7 +482,7 @@ class impression(object):
options.append('InputSlot=Tray4') options.append('InputSlot=Tray4')
else: else:
options.append('InputSlot=Tray3') options.append('InputSlot=Tray3')
if not self._settings['couleur'].value: if not self._settings['couleur'].value:
options += ['-o', 'HPColorAsGray=True'] options += ['-o', 'HPColorAsGray=True']
@ -492,14 +492,14 @@ class impression(object):
self._settings['livret'].value self._settings['livret'].value
paysage = self._width > self._height paysage = self._width > self._height
# mode paysage: on indique que c'est landscape (ou livret) # mode paysage: on indique que c'est landscape (ou livret)
if paysage: if paysage:
options += ['-o', 'landscape'] options += ['-o', 'landscape']
# Livret: 2 pages par côté, et on inverse le bord duplex # Livret: 2 pages par côté, et on inverse le bord duplex
if self._settings['livret'].value: if self._settings['livret'].value:
options += ['-o', 'number-up=2'] options += ['-o', 'number-up=2']
paysage = not paysage paysage = not paysage
if duplex: if duplex:
if paysage: if paysage:
options += ['-o', 'sides=two-sided-short-edge'] options += ['-o', 'sides=two-sided-short-edge']
@ -515,6 +515,11 @@ class impression(object):
v = self._settings['agrafage'].HP_name() v = self._settings['agrafage'].HP_name()
options += ['-o', 'HPStaplerOptions=%s' % v] options += ['-o', 'HPStaplerOptions=%s' % v]
if not self._settings['livret'].value:
if self._settings['perforation'].value:
v = self._settings['perforation']
options += ['-o', 'HPPunchingOptions=%s' % v]
# Que se passe-t-il si le nom de fichier commence par - ? # Que se passe-t-il si le nom de fichier commence par - ?
# pour éviter cela, on indique la fin des options, avec "--" # pour éviter cela, on indique la fin des options, avec "--"
options.append('--') options.append('--')