[impression_canon] On donne à pdfbook le nombre total de page du pdf à produire (nécessairement un multiple de 4)

Ignore-this: 7b1ffd27e192461d171a068e742ca551

darcs-hash:20120216175421-3a55a-7109da13b8ba348c1cbcf8e3e6074f1e6677d53c.gz
This commit is contained in:
Valentin Samir 2012-02-16 18:54:21 +01:00
parent 1d26d1c2fe
commit 5ab2c96710

View file

@ -216,12 +216,22 @@ class impression:
def _pdfbook(self): def _pdfbook(self):
page = "pdfinfo \"%s\" | grep Pages | awk '{print $2}'" % self._fichier
(status, npage) = getstatusoutput(page)
if status != 0:
self.log.error("pdfinfo status:%d | rep: %s" % (status, npage))
raise FichierInvalide, ("pdfinfo: Impossible de trouver le nombre de page du fichier",
self._fichier)
if int(int(npage)/4*4) < int(npage):
sig=int((int(npage)/4 +1)*4)
else:
sig=int(npage)
if self._settings['papier'] == 'A3': if self._settings['papier'] == 'A3':
newfile = self._fichier[:-4] + '-a3book.pdf' newfile = self._fichier[:-4] + '-a3book.pdf'
pdfbook = "pdfbook --paper a3paper %%s --outfile %s" % newfile pdfbook = "pdfbook --signature %s --paper a3paper %%s --outfile %s" % (sig,newfile)
else: else:
newfile = self._fichier[:-4] + '-book.pdf' newfile = self._fichier[:-4] + '-book.pdf'
pdfbook = "pdfbook %%s --outfile %s" % newfile pdfbook = "pdfbook --signature %s %%s --outfile %s" % (sig,newfile)
(status, rep) = getstatusoutput(pdfbook % self._fichier) (status, rep) = getstatusoutput(pdfbook % self._fichier)
self.log.info("%s | rep: %s" % ((pdfbook % self._fichier), rep)) self.log.info("%s | rep: %s" % ((pdfbook % self._fichier), rep))
self._fichier = newfile self._fichier = newfile