Lector de Códigos QR y Barras para NVDA
Descripción
Complemento que permite escanear y leer códigos QR y de barras directamente desde la pantalla, sin necesidad de cámara. Captura la pantalla, la ventana activa o el objeto con foco y decodifica cualquier código encontrado.
Características
- Escaneo de pantalla completa, ventana u objeto.
- Soporta QR y códigos de barras (EAN, UPC, Code128, Code39, etc.).
- Apertura automática de URLs con confirmación.
- Copia automática al portapapeles.
- Tono de detección al encontrar un código.
- Gestión segura de dependencias: Las librerías se cargan solo cuando se necesitan y no interfieren con otros complementos.
Compilación e Instalación
Este complemento requiere dependencias externas que se instalan automáticamente durante la compilación:
```bash
Compilar el complemento (instala dependencias en addon/lib/)
scons
```
El sconstruct lee requirements.txt y ejecuta pip install --target addon/lib/ automáticamente. Las dependencias se empaquetan dentro del .nvda-addon.
Dependencias empaquetadas
- pyzbar: Wrapper Python para la librería zbar de decodificación de códigos.
- Pillow: Procesamiento de imágenes para convertir capturas a formato legible por pyzbar.
Gestos de NVDA
Asignables desde "Gestos de entrada", categoría "Lector de QR":
| Función | Gesto |
|---|---|
| Escanear pantalla completa | Sin asignar |
| Escanear ventana en foco | Sin asignar |
| Escanear objeto con foco | Sin asignar |
| Repetir último resultado | Sin asignar |
| Copiar último código | Sin asignar |
| Abrir URL del último código | Sin asignar |
Configuración
Desde Menú NVDA → Preferencias → Opciones → Lector de QR:
- Abrir URLs automáticamente: Pregunta si abrir la URL al detectar un código QR con enlace.
- Copiar resultado al portapapeles: Copia automáticamente el contenido decodificado.
- Sonido al detectar: Reproduce un tono al encontrar un código.
- Región de escaneo por defecto: Pantalla completa, ventana o objeto.
El panel también muestra el estado de las dependencias instaladas.
Notas Técnicas
Gestión de sys.path
El complemento gestiona las dependencias de forma segura:
1. Al cargarse, añade addon/lib/ a sys.path para importar pyzbar y Pillow.
2. Inmediatamente después de importar, retira addon/lib/ de sys.path.
3. Durante la decodificación, lo añade temporalmente y lo retira al terminar.
Esto evita que las librerías bundled interfieran con otros complementos de NVDA.
Requisitos
- NVDA 2024.1 o posterior.
- Windows 10 o posterior.
- Python y pip disponibles durante la compilación (para instalar dependencias).
Registro de Cambios
Versión 1.0.0
- Versión inicial con escaneo de QR y códigos de barras.
- Soporte para pantalla completa, ventana y objeto con foco.
- Apertura automática de URLs con confirmación.
- Sistema de dependencias bundled con pip.