[gull] pdfnup en a3
Félix Hauri
felix at f-hauri.ch
Mon Nov 30 16:18:53 CET 2009
Bon, ça y est...
On Thu, Nov 26, 2009 at 12:18:41PM +0100, François wrote:
> Bonjour,
>
> J'ai un document composées de pages A4 dont je veux faire un livret A3.
> Mais pdfnup ne semble pas reconnaitre ce format :
> <<
> pdfnup --nup 2x1 --pages "4,1,2,3" --paper a3paper --outfile imp.pdf in.pdf
> >>
> me donne un document en letter....
>
> J'ai chercher un peu sur le net, mais rien trouvé.
> La page man de pdfnup indique qu'il faut une taille de papier "latex",
Intéressant: pdfnup est un wrapper qui utilise LaTeX pour le job...
(je ne connaissais pas, utilise depuis 10 ans psutils:
http://www.f-hauri.ch/ImpressionSousLinux/#5.3
et n'ai pas d'imprimante a3 ;-)
> mais je ne suis pas un spécialiste de ce programme. Il y a-t-il un
> extension latex à installer pour utiliser le A3,
Oui, mais je vais éviter de toucher à pdfnup que je ne connais pas...
> ou pdfnup ne reconnait-il pas le A3.
En fait pdfnup utilise ``article.cls'' qui ne connait pas a3 et plus.
Par contre il utilise /var/tmp pour travailler et... LaTeX utilise
le repertoire courant prioritairement pour charger ses classes.
Il n'y a donc qu'à placer un ``article.cls'' modifié dans /var/tmp
avant de lancer pdfnup...
J'ai créé un mini wrapper à qui récupère le article.cls pour
le copier dans /var/tmp et le patcher avant de lancer pdfnup.
Cela fontionne avec un fichier de 136pages (VzLinuxReference)
sans problème, pour moi:
D'abord, mon wrapper:
---- pdfnup_a3_wrapper.sh ----
#!/bin/bash
locate /usr/share/*texmf*/article.cls |
xargs cp -vt /var/tmp/
patch -p 0 <<end-of-patch
--- /var/tmp/article.cls
+++ /var/tmp/article.cls
@@ -60,6 +60,9 @@
\newif\if at titlepage
\@titlepagefalse
\if at compatibility\else
+\DeclareOption{a3paper}
+ {\setlength\paperheight {420mm}%
+ \setlength\paperwidth {297mm}}
\DeclareOption{a4paper}
{\setlength\paperheight {297mm}%
\setlength\paperwidth {210mm}}
end-of-patch
pdfnup $@
rm /var/tmp/article.cls
---- pdfnup_a3_wrapper.sh ----
Et voici comment j'ai transformé mon pdf de 136 pages en 34 feuilles A3:
(A noter que, par hasard, mon nombre de pages est divisible par 4...
Je ne garanti pas l'effet de cette astuce sur un autre fichier;)
$ pages=$(
pdfinfo VzLinuxReference.pdf |
awk '/Pages:/ {tot=$2;
fle=int(tot/4.0);
if (fle*4<tot) {fle++};
for (i=0;i<fle;i++) {
printf "%d,%d,%d,%d,",tot-i*2,i*2+1,i*2+2,tot-i*2-1
}}' | sed s/,$//
)
$ ./pdfnup_a3_wrapper.sh --paper a3paper --orient landscape --nup 2x1 \
--pages "$pages" --outfile VzLinuxReference-2.pdf VzLinuxReference.pdf
$ pdfinfo VzLinuxReference-2.pdf
Creator: TeX
Producer: pdfTeX-1.40.3
CreationDate: Mon Nov 30 16:01:59 2009
ModDate: Mon Nov 30 16:01:59 2009
Tagged: no
Pages: 68
Encrypted: no
Page size: 1190.55 x 841.89 pts
File size: 699507 bytes
Optimized: no
PDF version: 1.4
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list