Script bash pour scanner plusieurs pages depuis le chariot

xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Pour mon serveur j'ai créé un script bash pour scanner les documents et y convertir en PDF.
Seulement voilà, Quand j'exécute le script le chariot scanne la première page puis faite défilé le reste des pages sans les scanners.

Auriez vous une idée pour que tout les pages du chariot soi scanné une par une jusqu'a la dernière page ?

Merci.

Mon script
#!/bin/bash 

imprimante="MFC6490CW" 
resolution="100" 
nom_fichier="brscan_" 
extention="tiff" 



echo "Veuillez insérer les documents dans le chariot et appuyer sur la touche entrée pour continuer"; read line 
if echo "Veuillez patienter ..." 
then 
 output_file=/tmp/$nom_fichier"'date +%Y-%m-%d_%H-%M-%S'"".$extention" 
 echo "scan from $2($device) to $output_file" 
 scanimage --format tiff --mode Gray --resolution $resolution -l 0 -t 0 -x 210mm -y 297mm -p > $output_file 
 convert /tmp/*.tiff /tmp/test.pdf 
 rm -v -f /tmp/*.tiff 
else 
 echo "Annulé" 
fi 


Merci.

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Il n'y a aucune boucle dans ton script, donc normal qu'une seule page soit scannée ;-(
    0
  2. xunil2003 Messages postés 766 Date d'inscription   Statut Membre Dernière intervention   14
     
    Bonjour,

    La boucle fonctionne, cependant les feuilles continuent de défiler alors que le scanne de la seconde par na pas démarrée.
    et quand il n'y a plus de feuille à scanner dans le chariot le scanne continue toujours..

    Merci.

    #!/bin/bash  
    
    imprimante="MFC6490CW"  
    resolution="100"  
    nom_fichier="brscan_"  
    extention="tiff"  
    
    
    
    
    echo "Veuillez insérer les documents dans le chariot et appuyer sur la touche entrée pour continuer"; read line  
       
    for i in *  
     do  
    
    if echo "Veuillez patienter ..." ;  
    
    then  
     output_file=/tmp/$nom_fichier"'date +%Y-%m-%d_%H-%M-%S'"".$extention"  
     echo "scan from $2($device) to $output_file"  
     scanimage --format tiff --mode Gray --resolution $resolution -l 0 -t 0 -x 210mm -y 297mm -p > $output_file  
     convert /tmp/*.tiff /tmp/test.pdf  
       
       
     rm -v -f /tmp/*.tiff  
    else  
     echo "Annulé"  
       
    fi   
    
    done


    Ne serait-t-il pas mieux d'utiliser une boucle "while" pour demander continuellement une nouvelle page et "break" pour en sortir ?
    Ou es-ce que je me trompe ?

    Merci.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      N'ayant pas de scanner à chargeur sous la main, je ne peux tester ton script.

      Par contre j'ai trouvé ça : http://grover.open2space.com/content/batch-scanning-documents
      Tu devrais peut être t'en inspirer...
      0
  3. Utilisateur anonyme
     
    salut,

    est-ce qu'il ne faudrait pas attendre que le fichier $output soit libérer ?
    avec inotifywait, il me semble qu'il est possible d'attendre qu'un fichier n'est plus en cours d'écriture.

    for f in * boucle sur chaque fichier du répertoire courant.
    ce serait plutôt une boucle while avec inotifywait.
    0