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 14/07/2018, à 17:27

Lucie.Tri

[Résolu] Script avec simple scan

Bonsoir, je voudrais faire un script de la façon suivante :
- lancer simple scan
- frapper la touche de Tabulation
- frapper la touche Entrée.

Pour des raisons de mal-voyance, l'usage de la souris est impossible.
J'ai essayé de faire un script comme ça :

#!/bin/sh
gnome-terminal +x -e simple-scan ;
xdotool key 'Tab';
xdotool key 'Return';
exit 0;

ou comme ça :

#!/bin/sh
gnome-terminal +x -e simple-scan ;
xdotool key Tab
xdotool key Return
exit 0;

mais ça ne va pas, cela lance bien simple-scan mais la tabulation ne se fait pas donc tout est bloqué.
Mes connaissances sont quasiment nulles, quelqu'un pourrait-il me dire comment corriger ? C'est pas urgent ! Merci !

Dernière modification par Lucie.Tri (Le 05/11/2018, à 14:08)

Hors ligne

#2 Le 14/07/2018, à 18:10

Watael

Re : [Résolu] Script avec simple scan

salut,

c'est une mauvaise façon de faire : il existe des outils en ligne de commandes pour réaliser des scans.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 14/07/2018, à 18:56

Lucie.Tri

Re : [Résolu] Script avec simple scan

Sans doute mais avec simple scan c'est rapide et léger. Car, après utilisation du script je voudrais faire : CTRL + S pour enregistrer ou CTRL + P pour imprimer ...

Hors ligne

#4 Le 14/07/2018, à 19:05

Watael

Re : [Résolu] Script avec simple scan

manipuler une interface graphique depuis un script n'est ni simple, ni léger.

tout cela est automatisable tout-en-ligne_de_commandes.
regarde ce que peut faire scanimage (inclus dans le paquet sane).

Dernière modification par Watael (Le 14/07/2018, à 19:12)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 14/07/2018, à 19:46

Lucie.Tri

Re : [Résolu] Script avec simple scan

oui, on m'a donné une commande avec scanimage, mais elle me donne une image de 6 Mo, c'est trop. Tandis qu'avec simple-scan c'est une image légère.

Hors ligne

#6 Le 14/07/2018, à 20:04

Watael

Re : [Résolu] Script avec simple scan

quelle commande ?!

scanimage dispose de nombreuses options; il serait étonnant qu'il n'yen est pas une qui règle le poids de "l'image".
réfère-toi au man.

Dernière modification par Watael (Le 14/07/2018, à 20:05)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 14/07/2018, à 20:25

Lucie.Tri

Re : [Résolu] Script avec simple scan

Désolée, je n'en suis pas capable, donc je laisse tomber. Merci quand même !

Hors ligne

#8 Le 14/07/2018, à 20:44

Watael

Re : [Résolu] Script avec simple scan

quelle commande ?!


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 14/07/2018, à 21:07

Lucie.Tri

Re : [Résolu] Script avec simple scan

j'ai eu une idée ; xdotool key Tab ne fonctionnait pas car j'avais deux fenêtres ouvertes, celle du terminal et celle de simple scan.
J'ai donc créé un raccourci spécifique pour lancer simple-scan : win + alt + F2

et j'ai fait le script suivant : (il fallait les sleep)

#!/bin/sh
xdotool key Alt_L+Super_L+F2
sleep 2
xdotool key Tab
sleep 2
xdotool key Return
exit 0;

et ça fonctionne. Ce n'est sans doute ni très catholique ni très orthodoxe mais ça marche !

Si je fais : CTRL + S, j'enregistre l'image dans le dossier de mon choix

si je fais : CTRL + P, je peux imprimer.
et tout ça c'est simple à faire.

seul souci, il faut régler simple-scan d'avance pour choisir scan-texte ou scan-photo mais, bon ...

La commande avec scanimage est celle-ci :
scanimage --resolution 150 -x 210 -y 297> $HOME/Téléchargements/$(date +%Y_%m_%d)_scan.png && lpr $(ls -t $HOME/Téléchargements/*.png | head -n1) ......... mais ce n'est surtout pas de moi, j'en suis incapable, hélas !

Dernière modification par Lucie.Tri (Le 14/07/2018, à 21:33)

Hors ligne

#10 Le 15/07/2018, à 05:48

Watael

Re : [Résolu] Script avec simple scan

je ne me rends pas compte : pourquoi "6Mo, c'est trop" ?


fichier=$(date +"$HOME/Téléchargements/scan_%Y_%m_%d.pnm")
scanimage --resolution 150 -x 210 -y 297 >"$fichier" && lpr "$fichier"

j'ai seulement retiré des commandes inutiles.
c'est un peu plus lisible comme ça.

j'ai aussi corrigé l'extension du fichier créé, parce que scanimage, par défaut, crée des fichiers pnm, et pas png

Dernière modification par Watael (Le 15/07/2018, à 06:22)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#11 Le 15/07/2018, à 10:18

Lucie.Tri

Re : [Résolu] Script avec simple scan

merci, ta commande fonctionne bien : l'imprimante-scanner scanne et imprime la feuille.

Mais elle l'enregistre avec un poids de 6,5 Mo, trop lourd pour l'envoyer par mail. Dans ma campagne la connexion internet n'est pas très performante, des fois elle est même inexistante (zones blanches).
Ce fichier pnm je peux l'ouvrir avec Gimp mais pas avec photofiltre. Mais si je le convertis en jpg je peux l'ouvrir avec photofiltre.
Je peux l'ouvrir avec gthumb mais quand je fais : imprimer, il imprime une page blanche.
Si je l'ouvre avec gthumb et que je fais : copier, alors je peux l'exporter vers photofiltre.

J'ai essayé ça aussi , en mettant png au lieu de pnm et ça fonctionne.
fichier=$(date +"$HOME/Téléchargements/scan_%Y_%m_%d.png")
scanimage --resolution 150 -x 210 -y 297 >"$fichier" && lpr "$fichier"

Si je diminue la résolution, ça fonctionne aussi mais c'est moins bon...

Le problème c'est que tout ça c'est du langage bien compliqué surtout quand on est âgé et sans connaissances ! Je repère des choses mais je suis incapable d'écrire quelque chose comme ça. Tandis que mon script à moi, hyper-sous-basique et pas orthodoxe, il se comprenait facilement ! L'informatique n'est pas pour le bas-peuple dont je fais partie !

Dernière modification par Lucie.Tri (Le 15/07/2018, à 10:43)

Hors ligne

#12 Le 15/07/2018, à 11:15

Watael

Re : [Résolu] Script avec simple scan

l'extension donnée à un fichier n'a pas d'incidence sur sa "nature".
tu peux lui attribuer une extension fantaisiste, ce sera toujours un fichier .pnm

tu peux convertir le pnm en pdf avec imageMagick, puis compresser ce pdf avec GhostScript:

$ scanimage --resolution 150 -x210 -y297 >/tmp/monScan.fantaisiste
$
$ file /tmp/monScan.fantaisiste
/tmp/monScan.fantaisiste: Netpbm image data, size = 1240 x 1753, rawbits, pixmap
$ mv /tmp/monScan.{fantaisiste,pnm}
$ du -h /tmp/monScan.pnm
6,3M    /tmp/monScan.pnm
$
$ convert /tmp/monScan.pnm -quality 100 /tmp/monScan.pdf
$
$ gs -dBATCH -dNOPAUSE -dQUIET -sDEVICE=pdfwrite -sOutputFile="/tmp/finalScan.pdf" /tmp/monScan.pdf
$
$ du -h /tmp/finalScan.pdf
72K     /tmp/finalScan.pdf

EDIT :
on peut s'affranchir de ghostScript en convertissant l'image pnm en jpg, et en la retaillant :

$ convert /tmp/monScan.fantaisiste -resize 595x842 /tmp/monScan.jpg
$ du -h /tmp/monScan.jpg
60K     /tmp/monScan.jpg

Dernière modification par Watael (Le 15/07/2018, à 17:14)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#13 Le 15/07/2018, à 19:57

Lucie.Tri

Re : [Résolu] Script avec simple scan

Intéressant ! Je ne savais pas qu'on pouvait mettre l'extension qu'on voulait.
Mais comment veux-tu que je me souvienne de choses que je ne comprends pas !
Pour redimensionner je me sers tout simplement des actions personnalisées Thunar.
Je crois qu'on va arrêter là, tu m'as donné une commande qui fonctionne bien :

fichier=$(date +"$HOME/Téléchargements/scan_%Y_%m_%d.pnm")
scanimage --resolution 150 -x 210 -y 297 >"$fichier" && lpr "$fichier"

j'en ai fait un script qui fonctionne.

Mais une question quand même : si j'ai une imprimante et une webcam, que va-t-il se passer ? Je ne peux tester vu que je n'ai pas de webcam.

Hors ligne

#14 Le 15/07/2018, à 20:31

Watael

Re : [Résolu] Script avec simple scan

il faut indiquer le périphérique à utiliser avec l'option --device-name

$ scanimage -L
device `periph_#1' is a bla bla bla
device `periph_#2' is a tra la la
$
$ scanimage --device-name 'periph_#1' ...

Dernière modification par Watael (Le 15/07/2018, à 20:32)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#15 Le 16/07/2018, à 07:35

Lucie.Tri

Re : [Résolu] Script avec simple scan

Bonjour
itou, tu oublies itou : tra la la itou. Mais, bon, tu t'amuses à m'apprendre des choses que je ne connais pas. Je zyeute ! smile
Mais pourquoi donc ne veux-tu pas de mon script à moi, simpliste, certes, mais qui fonctionne (à partir du raccourci clavier ALT+Super+F2 qui lance, chez moi, simple-scan)

#!/bin/sh
xdotool key Alt_L+Super_L+F2
sleep 2
xdotool key Tab
sleep 2
xdotool key Return
exit 0;

Il est pas beau mon poisson mon script ? Pourquoi chercher midi à quinze heures quand on peut utiliser un langage simple ?

Dernière modification par Lucie.Tri (Le 16/07/2018, à 07:36)

Hors ligne

#16 Le 16/07/2018, à 12:31

Watael

Re : [Résolu] Script avec simple scan

c'est pas « tra la LÈRE itou » ? wink

Pourquoi chercher midi à quinze heures quand on peut utiliser [des instructions simples] ?

  • parce que quitte à faire un script, autant utiliser les commandes en ligne de commande (!),

  • parce qu'on maîtrise bien plus de paramètres sur une seule ligne de commande,

  • parce qu'il me paraît contradictoire de faire un script shell pour manipuler l'interface graphique,

  • parce qu'on n'a pas attendre que l'interface graphique termine son chargement,

  • parce que sur mon poste Alt_L+Super_L+F2 n'ouvre pas simple-scan, mais déclenche l'armageddon, XD

  • ...

Dernière modification par Watael (Le 16/07/2018, à 12:32)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#17 Le 16/07/2018, à 12:46

erresse

Re : [Résolu] Script avec simple scan

... et aussi parce-que Watael est un puriste qui tient à rester "dans les clous" du bash de préférence.
Mais en fait, si ton script à toi te satisfait, qu'il fonctionne correctement chez toi, rien ne t'interdit de procéder ainsi... Ce n'est peut-être pas catholique ou orthodoxe mais, comme tu l'as fait toi-même remarquer, ça marche et c'est simple (de ton point de vue).
wink

Dernière modification par erresse (Le 16/07/2018, à 12:47)


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#18 Le 16/07/2018, à 16:15

Watael

Re : [Résolu] Script avec simple scan

« hérétiques ! au bûcher !!! »

lol


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#19 Le 16/07/2018, à 19:31

Lucie.Tri

Re : [Résolu] Script avec simple scan

Halte au feu ! J'ai appris des choses, l'humour en plus. J'entrevois des horizons lointains pour moi. Je suis rassurée sur ma démarche hérétique et schismatique mais fonctionnelle.
Donc merci à tous les deux ! Si j'avance en connaissances, je reviendrai zyeuter les explications !

Hors ligne

#20 Le 17/07/2018, à 09:22

kholo

Re : [Résolu] Script avec simple scan

salut,
une fois la fonction trouvée on transforme facilement en script avec options
Watael va sans doute me reprendre mais je tente quand même un petit bout !

#!/bin/bash

# TODO routine pour choisir les options
une_rez=150
le_x=210
le_y=297
fichier=$(date +"$HOME/Téléchargements/scan_%Y_%m_%d.pnm")

logiciel_fonction="scanner automatiquement avec les options
resolution $resolution
x/y : ${le_x}/${le_y}
dans le fichier :
${fichier}"
zenity --question --text="${logiciel_fonction}\n\ncontinuer ?"
[ $? -eq 1 ] && exit 1

# scanimage --resolution 150 -x 210 -y 297 >"$fichier" && lpr "$fichier"
scanimage --resolution "$une_rez" -x "$le_x" -y "$le_y" >"$fichier" && lpr "$fichier"
[ $? -eq 1 ] && exit 1
#...
exit 0

Dernière modification par kholo (Le 17/07/2018, à 09:35)

Hors ligne