Использование xvkbd для чтения штрих-кода. Как отключить клавишу ввода? - PullRequest
1 голос
/ 04 декабря 2009

Я использую zbarcam для считывания штрих-кода с веб-камеры в моих веб-приложениях. Но, поскольку zbarcam отображает \ n в конце, моя форма отправляется.

Вот что я использую:

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 -

Как можно удалить \ n перед отправкой штрих-кода в xvkbd или отключить клавишу ввода в xvkbd?

Ответы [ 2 ]

1 голос
/ 09 апреля 2013

Чтобы убрать ввод:

print symbol.data.strip()

Но трусливая программа, которая делает это, довольно неприятна. Вы можете просто отправить напрямую в xvkbd из вашей программы (и вам не нужен файл, если вы не против передать строку в аргументах):

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

Это также позволяет избежать запуска другой оболочки и скрипта.

1 голос
/ 04 декабря 2009

Попробуйте это:

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