Je l'ai fait en utilisant le Coherent PDF Command Line Tools Community Release .
Vous pouvez télécharger soit les outils préconstruits, soit le logiciel code source pour compiler le dernier par vous-même, cependant ce dernier nécessite qu'OCaml soit installé lors de la compilation. Les outils préconstruits sont donc le moyen le plus simple de procéder. Le fichier de distribution téléchargé, par exemple cpdf-binaries-master.zip contient des binaires pour Linux, OS X/MacOS et Windows. Sa taille est de ~5 MB.
Une fois téléchargée et extraite (double-cliquer sur le fichier .zip) vous copieriez le, par ex. ~/Downloads/cpdf-binaries-master/OSX-Intel/cpdf dans un emplacement défini dans le fichier PATH
variable d'environnement par exemple /usr/local/bin/
pour le faire à l'échelle mondiale disponible sur la ligne de commande dans Terminal. S'il n'est pas dans le PATH
alors vous devrez utiliser l'option nom de chemin entièrement qualifié au cpdf
exécutable ou ./cpdf
s'il se trouve dans le répertoire de travail actuel ( pwd
). Dans le Terminal, tapez echo $PATH
alors montrez le PATH
.
El syntaxe pour supprimer la première page lorsque le fichier PDF comporte 2 pages ou plus :
cpdf in.pdf 2-end -o out.pdf
Parce que cpdf
lit le fichier original ( en.pdf ) et écrit dans un nouveau fichier ( out.pdf ) le out.pdf doit être différent s'il est sauvegardé au même endroit que le fichier d'enregistrement. en.pdf ou l'enregistrer à un autre endroit avec le même nom de fichier. en.pdf comme le nom de fichier out.pdf nom de fichier, ou autre out.pdf nom de fichier que vous voulez.
Ci-dessous, je vais vous montrer deux exemples d'automatisation à l'aide de cpdf
pour supprimer la première page d'un fichier PDF, en supposant qu'il comporte deux pages ou plus. L'une d'entre elles utilise un Automator flux de travail en tant que Service disponible en Finder sur le Menu contextuel des services et l'autre comme un bash
script à utiliser dans le terminal.
Comme un flux de travail de service Automator disponible dans le Finder sur le menu contextuel des services :
Dans Automator, créez un nouveau flux de services en utilisant les paramètres comme indiqué dans l'image ci-dessous et copier et coller l'adresse de l'utilisateur. code en dessous de l'image dans le Exécuter le Shell script action et sauvegarder comme par exemple : Supprimer la première page d'un PDF
Pour utiliser Supprimer la première page d'un PDF en Finder sélectionnez les fichiers PDF dont vous souhaitez supprimer la première page, puis sélectionnez Supprimer la première page d'un PDF de la Menu contextuel via Cliquez à droite sur o contrôle-clic ou de Finder > Services > Supprimer la première page d'un PDF
for f in "$@"; do
# Get Page Count.
p="$(/usr/local/bin/cpdf -info "$f" | awk '/Pages:/{print $2}')"
# Get file extension.
ext="${f##*.}"
# Get filename without extension.
fn="${f%.*}"
# Rename original file to "filename (original).pdf".
# Use '-n' to not overwrite an existing file.
mv -n "$f" "${fn} (original).${ext}"
case "$p" in
1)
# PDF file has 1 page. Make a copy to the
# original name for consistency of output.
# Use '-n' to not overwrite an existing file.
cp -n "${fn} (original).${ext}" "$f"
;;
*)
# PDF file has 2 or more pages.
# Remove the first page.
/usr/local/bin/cpdf "${fn} (original).${ext}" 2-end -o "$f"
;;
esac
# If you don't want to keep the original
# file, remove '#' from the next line.
# rm "${fn} (original).${ext}"
done
Notez que le PATH
a adopté un Exécuter le Shell script action sur Automator est, /usr/bin:/bin:/usr/sbin:/sbin
. Ainsi, le code ci-dessus utilise le nom de chemin entièrement qualifié au cpdf
exécutable , /usr/local/bin/cpdf
car c'est là que je l'ai placé afin d'être disponible en Terminal en utilisant son nom cpdf
seulement.
Notez également que si vous ne souhaitez pas conserver les fichiers d'origine, décommentez (supprimez l'attribut #
de devant) le # rm "${fn} (original).${ext}"
commande juste au-dessus de la dernière ligne de code done
.
En tant que bash
script à utiliser dans le terminal :
Créer le bash
script de la manière suivante :
Dans le terminal :
touch rfpfpdf
open rfpfpdf
Copiez le bloc de code en commençant par #!/bin/bash
en bas, dans l'ouverture rfpfpdf
puis l'enregistrer.
Retour au terminal :
Faites le script exécutable :
chmod u+x rfpfpdf
Maintenant, déplacez le rfpfpdf
script à, par exemple : /usr/local/bin/
sudo mv rfpfpdf /usr/local/bin/
Vous pouvez alors changer de répertoire cd ...
dans un répertoire qui contient les fichiers PDF dont vous voulez supprimer la première page, puis tapez simplement rfpfpdf
et appuyez sur enter .
Les fichiers originaux seront déplacés vers " nom de fichier (original).pdf "et le fichier PDF nouvellement créé sans la première page, s'il s'agit de 2 pages ou plus, aura l'adresse d'origine. filename.pdf
nom.
#!/bin/bash
for f in *.pdf *.PDF; do
if [[ -f $f ]]; then
# Get Page Count.
p="$(cpdf -info "$f" | awk '/Pages:/{print $2}')"
# Get file extension.
ext="${f##*.}"
# Get filename without extension.
fn="${f%.*}"
# Rename original file to "filename (original).pdf".
# Use '-n' to not overwrite an existing file.
mv -n "$f" "${fn} (original).${ext}"
case "$p" in
1)
# PDF file has 1 page. Make a copy to the
# original name for consistency of output.
# Use '-n' to not overwrite an existing file.
cp -n "${fn} (original).${ext}" "$f"
;;
*)
# PDF file has 2 or more pages.
# Remove the first page.
cpdf "${fn} (original).${ext}" 2-end -o "$f"
;;
esac
# If you don't want to keep the original
# file, remove '#' from the next line.
# rm "${fn} (original).${ext}"
fi
done
Notez que le code ci-dessus suppose que le cpdf
exécutable est dans un répertoire qui se trouve dans le PATH
variable d'environnement par exemple : /usr/local/bin/
Notez également que si vous ne souhaitez pas conserver les fichiers d'origine, décommentez (supprimez l'attribut #
de devant) le # rm "${fn} (original).${ext}"
commande juste au-dessus de la dernière ligne de code done
.