No dudes en divulgar nuestros post y códigos en tus redes, apóyanos para aumentar nuestra comunidad.
Solución:
Encontré este guión escrito por el Sr. Weimer muy útil:
#!/bin/sh
#
# pdfsplit [input.pdf] [first_page] [last_page] [output.pdf]
#
# Example: pdfsplit big_file.pdf 10 20 pages_ten_to_twenty.pdf
#
# written by: Westley Weimer, Wed Mar 19 17:58:09 EDT 2008
#
# The trick: ghostscript (gs) will do PDF splitting for you, it's just not
# obvious and the required defines are not listed in the manual page.
if [ $# -lt 4 ]
then
echo "Usage: pdfsplit input.pdf first_page last_page output.pdf"
exit 1
fi
gs -dNOPAUSE -dQUIET -dBATCH -sOutputFile="$4" -dFirstPage=$2 -dLastPage=$3 -sDEVICE=pdfwrite "$1"
Origen de: http://www.cs.virginia.edu/~weimer/pdfsplit/pdfsplit
guardarlo como pdfsplit.sh
ver la magia sucede.
PDFSAM también podría hacer el trabajo. Disponible en Windows y Mac.
Lo que ve es un comportamiento “normal”: la versión actual de Ghostscript pdfwrite
dispositivo de salida no es compatible con esta función. Esto también está (ciertamente, de alguna manera vagamente) documentado en Use.htm:
“Tenga en cuenta, sin embargo, que es posible que la función de una página por archivo no sea compatible con todos los dispositivos…”
Me parece recordar que uno de los desarrolladores de Ghostscript mencionó en IRC que mayo agregue esta función a pdfwrite en una versión futura, pero parece que se necesita una reescritura importante del código, razón por la cual aún no lo han hecho …
Actualizar: Como ya insinuó el comentario de Gordon, a partir de la versión 9.06 (lanzada el 31 de julio de 2012), Ghostscript ahora es compatible con la línea de comandos citada en la pregunta también para pdfwrite
. (Gordon debe haber descubierto el soporte no oficial para esto ya en 9.05, o compiló su propio ejecutable de las fuentes preliminares que aún no estaban etiquetadas como 9.06).
#!/bin/bash
#where $1 is the input filename
ournum=`gs -q -dNODISPLAY -c "("$1") (r) file runpdfbegin pdfpagecount = quit" 2>/dev/null`
echo "Processing $ournum pages"
counter=1
while [ $counter -le $ournum ] ; do
newname=`echo $1 | sed -e s/.pdf//g`
reallynewname=$newname-$counter.pdf
counterplus=$((counter+1))
# make the individual pdf page
yes | gs -dBATCH -sOutputFile="$reallynewname" -dFirstPage=$counter -dLastPage=$counter -sDEVICE=pdfwrite "$1" >& /dev/null
counter=$counterplus
done