Aplicativo para criar e imprimir etiquetas em impressoras compatíveis com ZPL II. O envio é feito pela rede, usando o IP e a porta da impressora (padrão: 9100).
Desenvolvido por LaynOS.
- Templates de produto, endereço, expedição, inventário, QR Code e identificação de cabos.
- Designer com textos, Code128, QR Codes, caixas e linhas.
- Modelos personalizados com campos editáveis, importação e exportação.
- Impressão individual ou em lote, histórico e dashboard.
- Cadastro de impressoras, tamanhos de etiqueta e resoluções de 200, 203 e 300 DPI.
- Prévia local, prévia online opcional, cópia e exportação de ZPL.
- Temas claro e escuro.
- Cadastre o IP e a porta da impressora e teste a conexão.
- Escolha o tamanho do papel e o DPI da impressora.
- Selecione um template e preencha os campos.
- Confira a prévia e toque em Imprimir.
O papel padrão é 30 × 100 mm. O template Básico usa EAN-13; Expedição e Inventário usam Code128. No Inventário, deixar a data vazia usa a data do dia.
A prévia local funciona offline. As fontes podem diferir das usadas pela impressora; zoom e rotação da prévia não alteram o ZPL enviado.
A Prévia online (Labelary) é opcional e vem desativada. Quando ativada, envia o conteúdo da etiqueta por HTTPS ao serviço externo. Uma falha nessa prévia não impede a impressão pela rede local.
O histórico guarda os últimos 100 trabalhos. A impressão em lote usa os campos preenchidos no início do envio. Parar aguarda a etiqueta em curso e cancela as próximas. Modelos personalizados têm um formulário próprio, com seleção da quantidade de cópias.
Abra Templates e designer → Criar etiqueta ou Meus templates e designer no formulário inicial.
- Dê um nome ao modelo e informe as medidas em milímetros.
- Adicione os elementos e ajuste posição, tamanho, fonte e alinhamento.
- Use Campo editável ao usar para os valores que mudam a cada impressão.
- Toque em Salvar e usar template.
Os modelos ficam em Meus templates. Preencher os campos para imprimir não altera o modelo salvo. O editor permite arrastar, redimensionar, duplicar, desfazer e refazer, com prévia local durante a edição.
Para compartilhar, escolha Exportar modelo ThermalDesk e envie o arquivo
.thermaldesk.json. Quem receber pode usar Importar modelo, revisar e salvar
uma cópia. O arquivo inclui o desenho e os valores de exemplo, mas não inclui
IP, porta ou histórico da impressora.
Exportar ZPL e Copiar ZPL produzem a etiqueta preenchida para uso em outros aplicativos compatíveis. O designer importa modelos ThermalDesk; não converte arquivos ZPL em modelos editáveis.
São aceitos até 100 modelos, 50 elementos por modelo e arquivos de 256 KB. As medidas vão de 10 a 200 mm de largura e de 10 a 300 mm de altura, respeitando a capacidade da impressora. A conversão para dots usa o DPI selecionado.
Requisitos: Flutter 3.47 ou superior e Dart 3.13 ou superior. Para Android, configure também o SDK Android e o JDK 21.
flutter pub get
flutter runPara conferir o código e executar os testes:
flutter analyze
flutter testA impressão por TCP requer uma plataforma nativa com acesso à rede da impressora. Em ambientes sem interface gráfica, execute o app em um dispositivo Android ou em outro computador com ambiente desktop.
Se necessário, configure os caminhos do JDK e do SDK:
flutter config --jdk-dir=/caminho/para/jdk-21
flutter config --android-sdk=/caminho/para/android-sdk
flutter doctor --android-licensesPara gerar APKs de release separados por arquitetura:
flutter build apk --release --split-per-abiOs arquivos ficam em build/app/outputs/flutter-apk/:
app-arm64-v8a-release.apkapp-armeabi-v7a-release.apkapp-x86_64-release.apk
O projeto usa uma chave de teste nos builds locais. Configure sua chave de assinatura antes de publicar na loja.
Instale clang, cmake, ninja-build, pkg-config e libgtk-3-dev e execute:
flutter build linux --releaseDistribua a pasta completa build/linux/x64/release/bundle.
A importação e a exportação de arquivos requerem uma sessão com
xdg-desktop-portal e um backend, como xdg-desktop-portal-gtk.
O projeto também contém configurações para iOS, macOS e Windows. A compilação de cada plataforma requer seu ambiente nativo. No iOS, a versão mínima é 14.
O app usa Flutter, Riverpod, SharedPreferences e file_picker. A comunicação com a impressora é feita por socket TCP, enviando comandos ZPL II em UTF-8.
Melhorias planejadas: importação CSV para lotes, estatísticas adicionais no dashboard e backup na nuvem.
Para contribuir, crie uma branch com a alteração, execute a análise e os testes e abra um pull request descrevendo o que mudou.
MIT.
