Supprimer la dernière page d'un fichier pdf en utilisant PDFtk?
quelqu'un peut-il s'il vous plaît me dire comment supprimer la dernière page d'un fichier PDF, en utilisant PDFtk?
36
demandé sur
Mateusz Piotrowski
2013-07-17 21:04:59
3 réponses
cat
opération, et spécifier une plage de pages.
pdftk infile.pdf cat 1-r2 output outfile.pdf
61
répondu
This isn't my real name
2013-07-18 02:49:03
vous devez connaître le nombre de pages, puis l'utiliser avec la fonction cat de pdftk, puisque pdftk (AFAICT) ne permet pas de spécifier un "décalage de la dernière".
http://poppler.freedesktop.org/) peut fournir ceci.Habillage de cette dans un peu de scripts bash pouvez facilement automatiser ce processus:
page_count=`pdfinfo "$INFILE" | grep 'Pages:' | awk '{print }'`
page_count=$(( $page_count - 1 ))
pdftk A="$INFILE" cat A1-$page_count output "$OUTFILE"
évidemment ajout de paramètres, vérification d'erreurs, et ce qui-ne pouvait pas aussi être placé dans said script:
#! /bin/sh
### Path to the PDF Toolkit executable 'pdftk'
pdftk='/usr/bin/pdftk'
pdfinfo='/usr/bin/pdfinfo'
####################################################################
script=`basename ""`
### Script help
if [ "" = "" ] || [ "" = "-h" ] || [ "" = "--help" ] || [ "" = "-?" ] || [ "" = "/?" ]; 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=""
if [ ! -r "$INFILE" ]; then
echo "$script: Failed to read [$INFILE]"
exit 2
fi
OUTFILE=""
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 }'`
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
5
répondu
Kingsley
2013-10-06 22:00:20
cpdf, vous pouvez référencer une page par sa distance de la fin du document, en utilisant un tilde, ainsi que le début.
donc, nous pouvons faire
cpdf in.pdf 1-~2 -o out.pdf
3
répondu
johnwhitington
2013-12-16 11:57:45