Convertir un pdf de varias hojas por página a una sola hoja por página

2

Mi suegro generalmente crea sus boletines pre-'reservados', es decir, dos columnas con las páginas en el lugar correcto para que pueda imprimir y engrapar el boletín. Desafortunadamente, este mes estamos usando una impresora que quiere un PDF sin reservar, con una página por página, en el orden correcto. Puedo reordenar páginas con bastante facilidad, pero ¿hay alguna forma de tomar un PDF que sea esencialmente 2-up y dividir las páginas?

Andrew Aylett
fuente
¿Qué aplicación usaste para generar el pdf? InDesign? Es en la aplicación que usó que especificaría la configuración de impresión (2 en adelante para folleto, boletín, etc.). Simplemente cambie la configuración de impresión a una sola página y vuelva a generar el pdf.
burrowsrjl
@burrowsrjl El folleto se generó usando LibreOffice, pero colocando dos columnas en cada página para que se pliegue bien sin configurar ninguna configuración de impresión, no mi configuración :).
Andrew Aylett

Respuestas:

1

tanto para el contenido PDF de ráster como para el vector puede usar este mi script que denominé decutshuffler

uso:

decutshuffler filename.pdf

#!/bin/bash
#a script that takes a 2-up booklet, cut in half the two halves, mix together one by one the pages from odd and even resulting pdf and finally reorder pages in sequential order
filename=$1
w="$(pdfinfo $filename | grep "Page size" | cut -d x -f1 | tr 'Page size:' ' ' | xargs)"
h="$(pdfinfo $filename | grep "Page size" | cut -d x -f2  | tr 'pts' ' ' | xargs)"
halfw="`echo "scale=0; $w / 2" | bc -l`"
pages="`pdftk $filename dump_data output |grep Pages|cut -f2 -d :`"
sed -e "s/$w $h/$halfw $h/g"<$filename>even.pdf
sed -e "s/0 0 $w $h/$w 0 $halfw $h/g"<$filename>odd.pdf
rule="$(for i in `seq 1 $pages`; do echo -n "A$i B$i "; done)"
pdftk A=even.pdf B=odd.pdf cat $rule output interleaved.pdf
doubled="`echo "scale=0; $pages * 2" | bc -l`"
pages4="`echo "scale=0; $doubled / 2" | bc -l`"
deshuf="$(for ((x=$doubled, y=1;x>=$pages4, y<=$pages4;x--, y++)); do echo "$x $y "; done |awk '{ print ; getline ; print $2, $1 }' | tr ' ' '\n' | cat -b | sort -n +1 -2| cut -f1 | tr '\n' ' '| xargs)"
pdftk interleaved.pdf cat $deshuf output deshuffled.pdf
pdftk deshuffled.pdf output fixed.pdf && mv fixed.pdf deshuffled.pdf
echo "file created!"

echo $pages
echo $deshuf
echo "halfw is $halfw"

exit 0

este guion

  1. toma su pdf impuesto como folleto de 2 en adelante como entrada

  2. dividir el pdf fuente en sus dos mitades produciendo un archivo con páginas impares y un archivo con páginas pares

  3. mezcle odd.pdf y even.pdf en un solo archivo, alternando, página 1 desde impar , página 1 desde par , página 2 desde impar , página 2 desde par ... y así sucesivamente ...

  4. finalmente, con una regla especial, reordena el archivo en orden secuencial, por lo que las páginas, en lugar de ser (para un folleto de 16 páginas)

16 1 2 15 14 3 4 13 12 5 6 11 10 7 8 9

se disponen secuencialmente en su orden natural:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Dingo
fuente
¿Existe una solución de uso general que acepte ncols y nrows? ¡Tengo 12x9 = 108 páginas por hoja! Briss dice que la imagen es demasiado grande. Aquí está el PDF comprimido .
mlt
Parece que el póster pdfcrop y mutool es para el rescate.
mlt