Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/09/2013, à 22:37

mao-40

[Évolution] script pdftk

Bonjour,

J'aimerais automatiser une procédure que je réalise pour l'instant à la main :

  • rotation d'un document pdf A4H de 90° Anti Horaire ;

  • concaténation de 3 documents pdf dont celui traité précédemment.

Pour la première action, j'utilise :

pdftk tp_56_fichecontrat.pdf cat 1W output tp_56_fichecontrat1.pdf 

Pour la deuxième action :

pdftk tp_56_pagedegarde.pdf tp_56_fichecontrat1.pdf tp_56_eleve_imp.pdf cat output tp_56_eleve_compimp.pdf

Ma structure est toujours la même seul le numéro du TP (56 dans cet exemple) change.
et le chemin pour l'atteindre ressemble à cela ou une fois encore seul le numéro du TP change : /home/<user/>/Cours/TP/TP_56

J'aimerais créer un script qui au lancement :
- Me demande le numéro du TP -> $num_tp
- En fonction du numéro saisi, exécute un :

cd /home/<user/>/Cours/TP/TP_'.$num_tp.' ;

- Exécute la commande de rotation :

pdftk tp_'.$num_tp.'_fichecontrat.pdf cat 1W output tp_'.$num_tp.'_fichecontrat1.pdf

- Exécute la commande de concaténation :

pdftk tp_'.$num_tp.'_pagedegarde.pdf tp_'.$num_tp.'_fichecontrat1.pdf tp_'.$num_tp.'_eleve_imp.pdf cat output tp_'.$num_tp.'_eleve_compimp.pdf

- Petit luxe, ouverture du dossier /home/<user/>/Cours/TP/TP_'.$num_tp.'

Est-ce faisable si oui en quoi bash ou autre, quelle doc utiliser ?

Merci pour votre aide

Dernière modification par mao-40 (Le 13/11/2013, à 00:09)


- 1. * Intel Core i7-8700K 3.7GHzx6 - 16Go - Nvidia GeForce GTX 1050 1Go - Ubuntu 23.04 64bits

Hors ligne

#2 Le 25/09/2013, à 22:45

pingouinux

Re : [Évolution] script pdftk

Bonsoir,
C'est tout-à-fait faisable, et tu l'as presque fait. Il faut juste que tu remplaces '.num_tp.' par "$num_tp", et que tu lises la valeur en tête du script

read -p "Entrer le numéro du TP : " num_tp

Hors ligne

#3 Le 25/09/2013, à 22:55

mao-40

Re : [Évolution] script pdftk

Ok merci bien,

Je viens de tester ceci :

#!/bin/bash

echo Génération fichier TP complet imprimable
read -p "Entrer le numéro du TP : " num_tp
echo $num_tp
cd /home/mao/Documents/Cours/Cours_tous/01_Cours_TP_MEI/02_TP/TP_"$num_tp"

pdftk tp_"$num_tp"_fichecontrat.pdf cat 1W output tp_"$num_tp"_fichecontrat1.pdf

pdftk tp_"$num_tp"_pagedegarde.pdf tp_"$num_tp"_fichecontrat1.pdf tp_"$num_tp"_eleve_imp.pdf cat output tp_"$num_tp"_eleve_compimp.pdf

evince tp_"$num_tp"_eleve_compimp.pdf

exit 0

Ça a l'air de fonctionner, par contre je n'arrive pas à faire ouvrir le dossier dans lequel est généré le pdf.

EDIT 1 :
Ah si j'ai ajouté ça avant evince... :

nautilus /home/mao/Documents/Cours/Cours_tous/01_Cours_TP_MEI/02_TP/TP_"$num_tp"

Je ne sais pas si c'est très propre, mais ça fonctionne.

EDIT 2 :
en ajoutant & à la fin des lignes evince et nautilus.

evince tp_"$num_tp"_eleve_compimp.pdf &
nautilus /home/mao/Documents/Cours/Cours_tous/01_Cours_TP_MEI/02_TP/TP_"$num_tp" &

Par contre il ne termine pas le script, il faut que je fasse un CTRL C

Dernière modification par mao-40 (Le 25/09/2013, à 23:17)


- 1. * Intel Core i7-8700K 3.7GHzx6 - 16Go - Nvidia GeForce GTX 1050 1Go - Ubuntu 23.04 64bits

Hors ligne

#4 Le 25/09/2013, à 23:32

mao-40

Re : [Évolution] script pdftk

Comment faire pour qu'un double clic sur le script l'exécute et ne l'ouvre pas dans gedit ?
Pour l'instant je tape : ./script_generation_tp dans un terminal

EDIT 1 :
J'ai réussi à rendre possible l'exécution du script par double-clic (ouvrir avec émulateur de terminal), par contre maintenant après m'avoir demandé le numéro du TP, avoir créé le fichier, le terminal se ferme mais n'ouvre pas le fichier ainsi généré, ni le dossier cible (j'ai essayé thunar à la place de nautilus idem)

Par contre il fonctionne bien lorsqu'il est lancé en ligne de commande.
Ne serait-ce pas une histoire de PATH, je n'ai pas tout saisi à ce sujet ?

EDIT 2 :
Script final qui a l'air de fonctionner :

#!/bin/bash

echo Génération fichier TP complet imprimable
read -p "Entrer le numéro du TP : " num_tp
echo $num_tp
cd /home/mao/Documents/Cours/Cours_tous/01_Cours_TP_MEI/02_TP/TP_"$num_tp"

pdftk tp_"$num_tp"_fichecontrat.pdf cat 1W output tp_"$num_tp"_fichecontrat1.pdf

pdftk tp_"$num_tp"_pagedegarde.pdf tp_"$num_tp"_fichecontrat1.pdf tp_"$num_tp"_eleve_imp.pdf cat output tp_"$num_tp"_eleve_compimp.pdf

rm tp_"$num_tp"_fichecontrat1.pdf

WID=`wmctrl -lx | grep nautilus.Nautilus | head -1 | awk '{print $1}'`
xdotool windowactivate $WID
xdotool key ctrl+t ctrl+l
sleep .1
xdotool type /home/mao/Documents/Cours/Cours_tous/01_Cours_TP_MEI/02_TP/TP_"$num_tp"
xdotool key "Return"

evince /home/mao/Documents/Cours/Cours_tous/01_Cours_TP_MEI/02_TP/TP_"$num_tp"/tp_"$num_tp"_eleve_compimp.pdf

exit 0

Mais avec cette erreur :

XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)

Dernière modification par mao-40 (Le 26/09/2013, à 00:24)


- 1. * Intel Core i7-8700K 3.7GHzx6 - 16Go - Nvidia GeForce GTX 1050 1Go - Ubuntu 23.04 64bits

Hors ligne