#1 Le 04/01/2016, à 20:06
- cristobal78
(résolu) nemo (nautilus) scripts pour touner fichier pdf de 180 degré
bonjour à tous
je ne sais pas pour vous mais je reçois souvent des pièces attachées en pdf qui se présentent la tête en bas.
Évidemment pas un pb si on a l'intention d'imprimer le document mais, si on ne le souhaite pas, la lecture à l'écran est pour le moins mal aisée.
Je me suis donc décidé à trouver un moyen simple de faire tourner de 180 degrés un pdf.
J'ai eu beau chercher sur le forum je n'ai pas trouvé.
Puis j'ai pensé à pdftk que je connais mais n'utilise pas.
Grâce au "man", qui pour une fois donne des exemples , j'ai réussi à faire tourner mon pdf de 180 degrés.
Content comme tout de ma réussite et ayant récemment découvert les "nautilus scripts" (en réalité les nemo-scripts car j'ai remplacé nautilus par nemo pour la touche "F3"), grâce auxquels on peut faire subir certaines transformations à des fichiers d'un simple click droit, j'ai mis la cde pdftk dans le script que voilà :
#!/bin/bash
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Fonction du script = fait tourner un pdf de 180deg (haut en bas)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
while [ $# -gt 0 ]
do
nomficcomplet=$1
nomficsansext=$(basename -s .pdf $1) #nom du fic sans extension
/usr/bin/pdftk "$nomficcomplet" cat 1down output "$nomficsansext"-rot180.pdf
shift
done
C'est en regardant plusieurs autres scripts que j'ai mis l'instruction "shift" avant le "done" final sans en comprendre la justification.
J'ai donc essayé sans le "shift" et là ça a foutu la m.... à tel point que je n'arrivais plus à arrêter le processus ni avec un kill, ni même en fermant ma session. Il a fallu faire un reboot !
D'où ma question : à quoi sert exactement le "shift" ??
Dernière modification par cristobal78 (Le 05/01/2016, à 14:10)
Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE
Hors ligne
#2 Le 04/01/2016, à 20:36
- pingouinux
Re : (résolu) nemo (nautilus) scripts pour touner fichier pdf de 180 degré
Bonsoir,
Lorsque tu appelles ton script avec plusieurs arguments (arg1, arg2,...), $1 correspond à arg1, $2 à arg2, etc...
shift supprime le premier argument, et les autres sont ainsi décalés : $1 correspond à arg2, $2 à arg3, etc...
Remarque : si les noms de tes fichiers contiennent des espaces, il faut remplacer $1 par "$1" dans ton script.
$ help shift
shift: shift [n]
Shift positional parameters.
Rename the positional parameters $N+1,$N+2 ... to $1,$2 ... If N is
not given, it is assumed to be 1.
Exit Status:
Returns success unless N is negative or greater than $#.
Dernière modification par pingouinux (Le 04/01/2016, à 20:38)
Hors ligne
#3 Le 04/01/2016, à 23:36
- cristobal78
Re : (résolu) nemo (nautilus) scripts pour touner fichier pdf de 180 degré
Salut pingouinux
- Merci pour le "$1" au lieu de $1, sage précaution bien que je ne mette jamais d'espace dans mes noms de fichiers. L'underscore les remplace très bien.
- Je me souviens que dans les années 80 (oulah c'est vieux ça !) qd on écrivait des fichiers batch sous DOS on utilisait "shift" dans un but similaire.
Mais ce que je ne comprends pas c'est que si je ne travaille que sur un seul fichier il y a un $1, ça on est d'accord, mais alors il n'y a pas de $2 et donc à priori il n'y a rien à "décaler" (shift).
Si ce que je dis est vrai on devrait pouvoir se passer de ce "shift" ??? Non ???
Et pourtant en supprimant le shift le script ne s’arrête plus et comme je le disais dans le post #1 seul un reboot m'a sorti du pétrin.
Pourquoi l'absence de shift dans le cas d'un seul argument ($1) fait déconner le script ?
Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE
Hors ligne
#4 Le 05/01/2016, à 07:01
- pingouinux
Re : (résolu) nemo (nautilus) scripts pour touner fichier pdf de 180 degré
C'est parce que le shift décrémente $#, et tu sors de la boucle. Si tu n'as qu'un fichier, la boucle est inutile.
Hors ligne
#5 Le 05/01/2016, à 11:11
- cristobal78
Re : (résolu) nemo (nautilus) scripts pour touner fichier pdf de 180 degré
Bien sur ... je peux donc virer du script les lignes : while, do, shift et done !!
OK je teste tout de suite ce que ça donne.
a+
Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE
Hors ligne
#6 Le 05/01/2016, à 14:09
- cristobal78
Re : (résolu) nemo (nautilus) scripts pour touner fichier pdf de 180 degré
Salut Pingouinux
merci de tes remarques.
Le script marche donc parfaitement en supprimant while, do etc ... mais bien sur il ne traite qu'un seul fichier à la fois.
Conclusion : comme qui peut plus peut moins je garde la version complète !
Je passe en résolu.
Laptop Lenovo Ubuntu 20.04 LTS / DELL Mint 20.2 - XFCE / Laptop HP Mint 20.2 - XFCE
Hors ligne