2009-12-04 3 views
1

J'utilise zbarcam pour lire le code à barres d'une webcam dans mes webapps. Mais, puisque zbarcam affiche un \ n à la fin, mon formulaire est submit.Utiliser xvkbd pour lire un code à barres. Comment désactiver la touche Entrée?

Voici ce que j'utilise:

read_one.py

#!/usr/bin/python 
from sys import argv 
import zbar 
import webbrowser 

# create a Processor 
proc = zbar.Processor() 

# configure the Processor 
proc.parse_config('enable') 

# initialize the Processor 
device = '/dev/video0' 
if len(argv) > 1: 
    device = argv[1] 
proc.init(device) 

# enable the preview window 
proc.visible = True 

# read at least one barcode (or until window closed) 
proc.process_one() 

# hide the preview window 
proc.visible = False 

# extract results 
for symbol in proc.results: 
    # do something useful with results 
    print symbol.data 

keyboard.sh

python read_one.py | xvkbd -file - 

Comment puis-je soit supprimer le '\ n' avant d'envoyer le code-barres à xvkbd ou désactiver la touche d'entrée dans xvkbd?

Répondre

1

Essayez ceci:

printf "$(python read_one.py)" | xvkbd -file - 
+0

Parfait, merci. – Natim

1

Dépouiller l'entrez:

print symbol.data.strip() 

Mais un programme pipeable qui fait cela est un peu méchant. Vous pouvez simplement envoyer directement à XVKBD de votre programme (et pas besoin de fichier si vous ne me dérange pas passer la chaîne dans args):

import subprocess # at appropriate place 
subprocess.call(['xvkbd', '-text', symbol.data.strip()]) 

On évite ainsi aussi une autre shell et script à exécuter.

Questions connexes