From 5ab2c96710b7869789545b7e601439280e7bc353 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Thu, 16 Feb 2012 18:54:21 +0100 Subject: [PATCH] =?UTF-8?q?[impression=5Fcanon]=20On=20donne=20=C3=A0=20pd?= =?UTF-8?q?fbook=20le=20nombre=20total=20de=20page=20du=20pdf=20=C3=A0=20p?= =?UTF-8?q?roduire=20(n=C3=A9cessairement=20un=20multiple=20de=204)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ignore-this: 7b1ffd27e192461d171a068e742ca551 darcs-hash:20120216175421-3a55a-7109da13b8ba348c1cbcf8e3e6074f1e6677d53c.gz --- impression/impression_canon.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/impression/impression_canon.py b/impression/impression_canon.py index a1ebbe8c..2afcf895 100755 --- a/impression/impression_canon.py +++ b/impression/impression_canon.py @@ -216,12 +216,22 @@ class impression: 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': 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: 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) self.log.info("%s | rep: %s" % ((pdfbook % self._fichier), rep)) self._fichier = newfile