4 votes

Comment configurer un service OSX pour supprimer la première page d'un PDF ?

Je reçois fréquemment des fichiers PDF dont la première page est soit vide, soit une page de couverture dont je n'ai que faire. Pouvez-vous me suggérer un moyen rapide et efficace (Applescript, Service, ou ? ??) de supprimer uniquement la première page et d'enregistrer le fichier ?

Si cela peut être automatisé via Preview ou Adobe Acrobat Professional, ce serait l'idéal.

Des idées ?

4voto

Daniel Beck Points 105590

Vous pouvez le faire en utilisant un Automator le flux de travail. Il est un peu plus complexe que la plupart des autres, alors soyez prudent lors de sa mise en œuvre.

Ce message contient deux versions : L'une est plus courte et stocke la sortie comme Processed PDF File.pdf sur le bureau, l'autre plus long et stocke le fichier en tant que (Edited)InputFileName.pdf dans le même répertoire. Les étapes requises pour la version longue uniquement sont marquées (facultatif) .

Ouvrir Automator et sélectionnez pour créer un nouveau Service qui reçoit Fichiers PDF comme entrée dans Toute application .

  1. (facultatif) Ajouter un Définir la valeur de la variable et nommez la variable FilePath .

  2. (facultatif) Ajouter un Exécuter AppleScript et utiliser le code script suivant pour obtenir le nom du dossier dans lequel se trouve le fichier :

    on run {input, parameters}
        tell application "Finder" to return (container of first item of input) as alias
    end run
  3. (facultatif) Ajouter un Définir la valeur de la variable et nommez la variable Folder .

  4. (facultatif) Ajouter un Obtenir la valeur d'une variable et retourner la variable FilePath . Ignorer l'entrée de cette action dans son Options .

  5. (facultatif) Ajouter un Exécuter Shell Shell action et passer l'entrée comme arguments . Utilisez le script suivant pour extraire le nom de base du fichier :

    echo "$( basename "$1" )"
  6. (facultatif) Ajouter un Définir la valeur de la variable et nommez la variable FileName .

  7. (facultatif) Ajouter un Obtenir la valeur d'une variable et nommez la variable FilePath . Ignorer l'entrée de cette action dans son Options .

  8. Ajouter un PDF en images en enregistrant le résultat sur le bureau ou dans tout autre dossier pouvant contenir des fichiers temporaires. Nommez-les comme vous le souhaitez.

  9. Ajouter un Définir la valeur de la variable afin de savoir plus tard quels fichiers temporaires supprimer. Nommez la variable TempFiles .

  10. Ajouter un Exécuter AppleScript et utilisez le code script suivant pour filtrer la liste des fichiers temporaires (c'est ici que nous supprimons la première page) :

    on run {input, parameters}
        return rest of input
    end run
  11. Ajouter un Combiner des pages PDF action pour recoller les morceaux, en ajout de pages .

  12. Utilisez le Éléments de l'outil de recherche des mouvements pour déplacer le fichier résultant (le PDF recombiné) sur le bureau, ou dans tout autre dossier où vous le souhaitez. Si vous avez décidé de calculer le dossier parent du fichier d'entrée, c'est ici que vous faites glisser et déposez une référence à l'action Folder variable.

  13. El Renommer les éléments du Finder peut donner à ces fichiers un nom plus approprié que, par exemple, le nom de l'action. zOpY3O.pdf qui est le nom de fichier automatiquement attribué au fichier PDF combiné. Utilisez par exemple Nom Article unique et lui donner un nom de base de Processed PDF File . Si vous avez choisi d'utiliser la variante longue, faites glisser FileName de la liste des variables au champ de texte, et ajoutez (Edited) juste avant. Maintenant, nous avons pratiquement terminé, il ne reste plus qu'à nettoyer.

  14. Ajouter le Obtenir la valeur d'une variable et obtenir la valeur de TempFiles . Ignorer l'entrée de cette action dans son Options .

  15. Ajouter un Déplacer les éléments du Finder vers la corbeille pour supprimer les fichiers temporaires à page unique.

Voici une capture d'écran de la version longue du flux de travail :

enter image description here

2voto

En utilisant la méthode susmentionnée Outils PDF en ligne de commande J'ai pu compiler un flux de travail qui fait ce qui suit :

  1. Prendre un ou plusieurs PDF d'entrée et générer un nouveau fichier sans la première page.
  2. Déplacer le PDF original vers la corbeille
  3. Renommez le nouveau fichier pour qu'il corresponde au fichier d'origine.

J'ai d'abord installé les outils PDF comme indiqué. L'outil clé dans ce cas est pdfsplit.

Dans Automator, j'ai créé un nouveau service pour recevoir les fichiers PDF sélectionnés dans le Finder.

J'ai ajouté l'action "Run Shell Shell", avec le Shell comme "/bin/bash" et "pass input" réglé sur "as arguments". J'ai ensuite écrit le simple Shell suivant :

for f in "$@"
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

J'ai ajouté une action "Déplacer les éléments du Finder vers la corbeille" pour le fichier original et une action "Remplacer le texte" pour supprimer l'extension .tmp du nouveau fichier.

Pour exécuter le processus avec une entrée de dossier, le script serait quelque chose comme :

cd "$@"
for f in *pdf
do
        /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
done

Je suppose que j'aurais pu tout faire dans le Shell Shell, y compris la suppression et le renommage. Mais la commande rm peut être dangereuse, et je préfère déplacer le fichier original dans la corbeille à la place.

Le script peut être modifié pour faire plus que simplement supprimer x nombre de pages. J'ai développé un programme similaire pour recadrer et combiner des PDF par lots, par exemple. Consultez le manuel sur pdfsplit et les outils qui l'accompagnent pour plus d'informations.

0voto

Sojourner Points 71

Quelqu'un sur un autre forum a développé einige Outils PDF en ligne de commande dont une qui supprime des pages. Cela semble relativement facile. Le seul hic possible pourrait être la façon dont il fonctionne avec votre flux de travail. D'après votre description, il semble que vous ayez besoin de quelque chose qui fonctionne lorsque le PDF est ouvert et ces outils semblent fonctionner (mieux) avec un fichier fermé.

0voto

Konrad Points 677

Juste pour ajouter à la réponse fournie par Joseph Yannielli, pour ceux qui décident d'exécuter le Shell Shell, il peut être plus facile d'inclure des commandes pour supprimer et renommer le fichier dans le Shell au lieu d'ajouter des actions séparées via Automator :

for f in "$@"
do
    /usr/local/bin/pdfsplit "$f" 2- > "$f".tmp
    rm "$f"
    mv "$f".tmp "$f"
done

En ce qui concerne l'installation d'outils PDF en ligne de commande, elle peut être effectuée de manière pratique à l'aide de la commande Homebrew :

brew install pdf-tools

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X