Impresión de libros en cuadernillos (booklets)

14/01/2010

Cuando queremos imprimir un libro con muchas páginas no es práctico ni económico ni ecológico imprimir una página por folio.
La primera medida para economizar sería imprimir a doble página. La siguiente medida sería imprimir a dos caras. Combinando ambas medidas necesitamos 1/4 de folios y espacio y casi el mismo ahorro en tinta.
El problema que hay que resolver consiste en cómo ordenar la impresión de las páginas y folios para que al terminar de imprimir las páginas queden en la secuencia adecuada.
Y no sólo eso: imaginemos que tenemos un documento de 300 páginas. Si lo imprimimos tal cual a doble página y doble cara obtendremos 300/4 = 75 folios de documento. No podemos pretender doblar 75 folios tal cual, ya que a medida que vamos poniendo más folios, unos encima de otros, al doblarlos, la doblez se va haciendo mayor.
La solución a este último problema consiste en imprimir cuadernillos de, por ejemplo 5 folios, de tal modo que nuestro libro de 300 páginas y 75 folios quedaría dividido en 15 cuadernillos de 5 folios.
Pero claro, acabamos de complicar aún más la secuencia de impresión de las páginas para poder obtener esos cuadernillos.

En windows solía utilizar el FinePrint que tiene en cuenta toda esta problemática y permite generar el libro especificando un tamaño de booklets (cuadernillos). Incluso nos indica en qué sentido girar los folios una vez que ha impreso la primera cara de todos los folios.

Buscando una solución similar para Linux me encontré con este post de MiKatp en Barrapunto donde presenta un script que se ha currado para solucionar este problema:

#!/bin/bash

# Hecho con prisas para sólo de la forma *.ps

pags=2 # folios por cuadernillo
[ -z $2 ] || pags=$2
pags=$(($pags*4))

echo Procesando $1 a $pags páginas por cuadernillo.
psbook -s$pags "$1" | psnup -2 | psselect -o > /tmp/$1_paso1.ps
psbook -s$pags "$1" | psnup -2 | psselect -e > /tmp/$1_paso2.ps
echo "Imprime primero /tmp/$1_paso1.ps, voltea los folios e imprime /tmp/$1_paso2.ps"

Para establecer el número de folios que tendrá cada cuadernillo cambiamos el valor de «pags=2».
A partir de 5 folios la doblez empieza a ser demasiado grande.

Para imprimir un PDF primero hay que pasarlo a PS, después ejecutamos el script pasándole como argumento el fichero .ps, el cual generará dos ficheros .ps: imprimimos el primero, volteamos los folios e imprimimos el segundo. Ya sólo nos queda ir recogiendo los folios y doblando los cuadernillos.