pdfextract

Extraire un intervalle de page d'un pdf - retour accueil

git clone git://bebou.netlib.re/pdfextract
Log | Files | Refs | README |

commit 025284f4b32167eefd62f1821a827072994f7efc
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Mon, 25 Nov 2024 14:07:15 +0100

Premier commit

Diffstat:
A.gitignore | 3+++
AREADME | 22++++++++++++++++++++++
Amakefile | 10++++++++++
Apdfextract.sh | 40++++++++++++++++++++++++++++++++++++++++
4 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -0,0 +1,3 @@ +*.pdf +.*.sw? +pdfextract diff --git a/README b/README @@ -0,0 +1,22 @@ +# pdfextract + +Un outil pour extraire des pages d'un pdf + +## Dépendances + +Dépend de pdfunite et pdfseparate de poppler-utils (sous debian) + + apt install poppler-utils + +## Usage + + [pdfextract] [-s start] [-e end] -f fichier_source [-o fichier_de_sortie] + +Par exemple pour extraire de `source.pdf` les pages 3 à 7 et les mettre dans +`dest.pdf` : + + pdfextract -s 3 -e 7 -f source.pdf -o dest.pdf + +Si aucun fichier destination n'est renseigné le résultat sera mis dans un +fichier nommé `extracted-out.pdf`. + diff --git a/makefile b/makefile @@ -0,0 +1,10 @@ +PREFIX = /usr/local + +all: pdfextract + +install: + mkdir -p "${DESTDIR}${PREFIX}/bin" + cp pdfextract "${DESTDIR}${PREFIX}/bin" + +uninstall: + rm ${DESTDIR}${PREFIX}/bin/pdfextract diff --git a/pdfextract.sh b/pdfextract.sh @@ -0,0 +1,40 @@ +#! /bin/sh + +while getopts "s:e:f:o:h" opt;do + case "$opt" in + (h) + <<-. cat + Utilisation : [pdfextract] [-s start] [-e end] -f fichier_source [-o fichier_de_sortie] + + azdazd + zadazd + azd + . + exit 0 + ;; + (*) eval "$opt='$OPTARG'" ;; + esac +done + +die() { + msg="$1" + echo "$msg" + exit 1 +} + +nbpages() { + sourcefile="$1" + pdfinfo "$sourcefile" | awk '{print $2}' +} + +[ -n "$s" -a -z "$e" ] && e="$(nbpages $f)" +[ -z "$s" -a -z "$e" ] && die "Manque les pages" +[ -z "$f" ] && die "Manque le fichier source" + +tmpdir=$(mktemp -d) +trap "rm $tmpdir/*.pdf.tmp" EXIT QUIT + +pdfseparate -f "${s:-0}" -l "$e" "$f" $tmpdir/%d.pdf.tmp +pdfs=$(find $tmpdir -name '*.pdf.tmp' | sort -t'/' -nk4) +pdfunite $pdfs ${o:-extracted-out.pdf} +