linux - quitar - recortar pdf ubuntu
¿Eliminar la última página de un archivo pdf usando PDFtk? (3)
¿Puede alguien decirme cómo eliminar la última página de un archivo PDF utilizando PDFtk?
Con cpdf , puede hacer referencia a una página por lo lejos que está del final del documento, utilizando una tilde, así como el comienzo.
Entonces, podemos hacer
cpdf in.pdf 1-~2 -o out.pdf
Necesita averiguar el recuento de páginas, luego use esto con la función pdftk cat, ya que (AFAICT) pdftk no permite especificar una "compensación desde el último".
Una herramienta como ''pdfinfo'' de Poppler ( http://poppler.freedesktop.org/ ) puede proporcionar esto.
Envolver esto en un poco de scripts bash puede automatizar fácilmente este proceso:
page_count=`pdfinfo "$INFILE" | grep ''Pages:'' | awk ''{print $2}''`
page_count=$(( $page_count - 1 ))
pdftk A="$INFILE" cat A1-$page_count output "$OUTFILE"
Obviamente, agregar parámetros, verificar errores y lo que no se puede colocar en dicho script:
#! /bin/sh
### Path to the PDF Toolkit executable ''pdftk''
pdftk=''/usr/bin/pdftk''
pdfinfo=''/usr/bin/pdfinfo''
####################################################################
script=`basename "$0"`
### Script help
if [ "$1" = "" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-?" ] || [ "$1" = "/?" ]; then
echo "$script: <input-file.PDF> [<output-file.PDF>]"
echo " Removes the last page from the PDF, overwriting the source"
echo " if no output filename is given"
exit 1
fi
### Check we have pdftk available
if [ ! -x "$pdftk" ] || [ ! -x "$pdfinfo" ]; then
echo "$script: The PDF Toolkit and/or Poppler doesn''t seem to be installed"
echo " (was looking for the [$pdftk] and [$pdfinfo] executables)"
exit 2
fi
### Check our input is OK
INFILE="$1"
if [ ! -r "$INFILE" ]; then
echo "$script: Failed to read [$INFILE]"
exit 2
fi
OUTFILE="$2"
if [ "$OUTFILE" = "" ]; then
echo "$script: Will overwrite [$INFILE] if processing is ok"
fi
timestamp=`date +"%Y%m%d-%H%M%S"`
tmpfile="/tmp/$script.$timestamp"
page_count=`$pdfinfo "$INFILE" | grep ''Pages:'' | awk ''{print $2}''`
page_count=$(( $page_count - 1 ))
### Do the deed!
$pdftk A="$INFILE" cat A1-$page_count output "$tmpfile"
### Was it good for you?
if [ $? -eq 0 ]; then
echo "$script: PDF Toolkit says all is good"
if [ "$OUTFILE" = "" ]; then
echo "$script: Overwriting [$INFILE]"
cp -f "$tmpfile" "$INFILE"
else
echo "$script: Creating [$OUTFILE]"
cp -f "$tmpfile" "$OUTFILE"
fi
fi
### Clean Up
if [ -f "$tmpfile" ]; then
rm -f "$tmpfile"
fi
Usar la operación cat
y especificar un rango de página.
pdftk infile.pdf cat 1-r2 output outfile.pdf