Pular para o conteúdo

Impressora Bluetooth

Este guia é para quem instala e dá suporte à impressão Bluetooth (BLE) direto pelo navegador (Estabelecimento → Impressora → Impressora USB, Bluetooth ou serial deste navegador, com Conectar por Bluetooth, Desconectar e Desparear). Vale para impressoras térmicas BLE, como a MPT-II. A extensão AgoraFood Print, que também falava Bluetooth, foi descontinuada: veja Conectar a impressora térmica deste computador.

Para a impressora Bluetooth funcionar no Chrome, é preciso ativar uma flag: a chrome://flags/#enable-web-bluetooth-new-permissions-backend. Nos testes da AgoraFood, sem ela o Chrome não deixa conectar nem reconectar a impressora já pareada: o botão Conectar por Bluetooth fica desativado, ou o seletor não deixa escolher a impressora.

  1. Abra uma aba do Chrome e digite: chrome://flags/#enable-web-bluetooth-new-permissions-backend

  2. Em Enable Web Bluetooth new permissions backend, escolha Enabled.

  3. Clique em Relaunch. O Chrome reinicia por completo.

  4. Em Estabelecimento → Impressora, toque em Conectar por Bluetooth e escolha a impressora no seletor do Chrome.

A flag é por computador e por perfil do Chrome: ative-a em cada máquina onde o Bluetooth for usado.

  • Pareie somente pelo seletor do Chrome: o botão Conectar por Bluetooth. Não pareie a impressora nas configurações do Windows ou do Linux. O pareamento do sistema pode fixar a conexão no modo Bluetooth Clássico, sem GATT, e a conexão passa a falhar com No Services found in device ou não expõe um canal de escrita conhecido.
  • Se a impressora já estiver pareada no sistema, remova-a de lá (no Windows: Configurações → Bluetooth e dispositivos → Remover dispositivo; no Linux: bluetoothctl remove <endereço>), desligue e ligue a impressora e pareie de novo pelo Chrome.
  • Feche tudo o que possa estar conectado à impressora: outra aba, outro programa, o celular, outro computador. A impressora BLE geralmente aceita uma conexão por vez.
  • Se o seletor mostrar o mesmo nome mais de uma vez, tente a outra entrada.

Basta a flag (seção 1) e o pareamento só pelo Chrome (seção 2). Use o Chrome 118 ou mais novo.

Além da flag da seção 1:

  1. BlueZ 5.41 ou mais novo, com o serviço ativo:

    Janela do terminal
    bluetoothctl --version
    systemctl status bluetooth
    sudo systemctl enable --now bluetooth
  2. Adaptador ligado:

    Janela do terminal
    bluetoothctl show # deve mostrar "Powered: yes"
    bluetoothctl power on
  3. Uma flag a mais, porque o Web Bluetooth vem desativado no Linux: abra chrome://flags/#enable-experimental-web-platform-features, escolha Enabled e reinicie o Chrome.

O BlueZ pode estar conectando pelo lado Clássico (BR/EDR) de uma impressora dual-mode, que não tem serviços GATT. Tente nesta ordem, testando a impressão depois de cada passo:

  1. Esquecer a impressora no BlueZ:

    Janela do terminal
    bluetoothctl devices
    bluetoothctl remove <endereço da impressora>
  2. Limpar o cache de GATT e reiniciar o serviço. O <adaptador> é o endereço do seu adaptador, que aparece em ls /var/lib/bluetooth:

    Janela do terminal
    sudo rm -rf /var/lib/bluetooth/<adaptador>/cache/<endereço da impressora>
    sudo systemctl restart bluetooth
  3. Forçar o BlueZ a usar só BLE: edite /etc/bluetooth/main.conf, na seção [General]:

    ControllerMode = le

    e reinicie com sudo systemctl restart bluetooth.

Depois de cada passo: desligue e ligue a impressora, toque em Desparear na tela Impressora e conecte de novo pelo Chrome.

Mensagem Causa provável O que fazer
getDevices não está disponível Flag da seção 1 desativada Ative a flag e reinicie o Chrome
O botão Conectar por Bluetooth está desativado, ou não deixa escolher a impressora Flag da seção 1 desativada Ative a flag e reinicie o Chrome
No Linux o Web Bluetooth vem desativado… Flag experimental ausente (Linux) Passo 4.1 (3)
Bluetooth indisponível: ligue o adaptador… Adaptador desligado ou BlueZ parado Passo 4.1 (1) e (2)
No Services found in device ou não expõe um canal de escrita conhecido Impressora pareada no sistema, ou conectando pelo modo Clássico Seção 2 e passo 4.2
GATT Server is disconnected A impressora derrubou a conexão (há outro aparelho conectado) Feche o que estiver conectado e religue a impressora
A impressora Bluetooth não respondeu Impressora desligada ou fora de alcance Ligue e aproxime a impressora