PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 25 → Como abrir gaveta via wlanguage
Como abrir gaveta via wlanguage
Started by Boller, Aug., 30 2025 1:13 AM - No answer
Registered member
4,520 messages
Posted on August, 30 2025 - 1:13 AM
Boa tarde Adriano 😃

Sim, dá para abrir a gaveta de dinheiro ligada a uma impressora Epson USB diretamente pelo WLanguage (WinDev/WebDev/WM).

O segredo é que a gaveta não é controlada via porta separada, mas sim enviando um comando ESC/POS para a impressora.

Passos:
1. Identificar o nome/porta da impressora USB no Windows (ex: "EPSON TM-T20 Receipt").
2. Usar iPrint ou iEscape para mandar os bytes de comando para a impressora.
3. O comando padrão ESC/POS para abrir a gaveta é:
• ESC p m t1 t2
• m = 0 ou 1 (saída conectada, geralmente 0)
• t1 = 25 (tempo ON em múltiplos de 2ms → 50ms)
• t2 = 250 (tempo OFF em múltiplos de 2ms → 500ms)



Exemplo de Classe WLanguage

// Classe para controlar gaveta de dinheiro em impressora Epson ESC/POS
CLASS clsCashDrawer
PROCEDURE OpenDrawer(psPrinterName is string)

// Abre conexão com a impressora
iDestination(psPrinterName)

// Sequência ESC p 0 25 250
sCmd is string = Charact(27) + "p" + Charact(0) + Charact(25) + Charact(250)

// Envia comando bruto
iPrint(sCmd)

// Fecha spool
iEndPrinting()

RESULT True
END




Exemplo de Uso

PROCEDURE TestOpenDrawer()
cDrawer is clsCashDrawer
IF cDrawer.OpenDrawer("EPSON TM-T20 Receipt") THEN
Info("✅ Gaveta aberta com sucesso!")
ELSE
Error("❌ Falha ao abrir gaveta!")
END




👉 Observações:
• Troque "EPSON TM-T20 Receipt" pelo nome exato da impressora no Windows.
• Se não abrir, teste Charact(1) no lugar de Charact(0) (alguns modelos usam a porta 1).
• Em impressoras instaladas como Genéricas/Text Only

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/