Pular para o conteúdo

Linguagem dos modelos

Versão legada

O campo Template dos modelos de comanda e dos complementos é escrito numa linguagem própria, parecida com uma página da internet (HTML). Esta página é a referência dessa linguagem, para quem quer ajustar um modelo: mudar um texto, tirar o endereço, pôr o número da comanda maior e assim por diante.

Um modelo tem duas partes misturadas:

  1. Os dados, entre chaves duplas: {{Pesagem.Numero}} é trocado pelo número da comanda, {{Empresa.Nome}} pelo nome do restaurante e assim por diante.
  2. O layout, com marcações entre < e >: <p> para um parágrafo, <table> para uma tabela, bold para negrito, font-size="large" para letra grande.

Por exemplo:

<p bold font-size="large" text-center>Comanda N.{{Pesagem.Numero}}</p>
<p>Data: {{Pesagem.Data}}</p>

imprime o número da comanda em negrito, letra grande e centralizado, e embaixo a data e a hora da pesagem.

Escreva o nome da variável entre {{ e }}, respeitando as letras maiúsculas e minúsculas. Um nome escrito errado não dá erro: só fica em branco na comanda.

Pesagem (a comanda que está sendo impressa):

Variável O que é
{{Pesagem.Numero}} O número da comanda.
{{Pesagem.Data}} A data e a hora da pesagem, como 24/10/2026 12:15:30.
{{Pesagem.Descricao}} O título do preço (ou o título do à vontade, quando ele é atingido).
{{Pesagem.ValorUnitario}} O valor do quilo (ou o valor do preço fixo).
{{Pesagem.PesoAferido}} O peso do prato, em quilos, já sem a tara.
{{Pesagem.Quantidade}} O peso, nos preços por quilo; 1, nos preços fixos e no à vontade.
{{Pesagem.Total}} O valor da comanda.
{{Pesagem.Codigo}} O código do produto, quando o preço usa código.

Empresa (os dados de cadastros › Empresa):

Variável O que é
{{Empresa.Nome}} Nome da empresa.
{{Empresa.Endereco}}, {{Empresa.EnderecoNumero}}, {{Empresa.Bairro}} Endereço, número e bairro.
{{Empresa.Cidade}}, {{Empresa.Estado}}, {{Empresa.Cep}} Cidade, UF e CEP.
{{Empresa.Telefone}}, {{Empresa.Celular}} Telefone e celular.
{{Empresa.ContatoEmpresa}} Telefone e celular juntos, separados por “ / “ (só os que estiverem preenchidos).
{{Empresa.Email}}, {{Empresa.Site}} E-mail e site.
{{Empresa.PossuiAlgumContato}} Verdadeiro quando há telefone ou celular (para usar em condições).

Frase (a frase sorteada em cadastros › Frases):

Variável O que é
{{Frase.Descricao}} O texto da frase.
{{Frase.Autor}} O autor.
{{ExibirFrase}} Verdadeiro quando a opção Exibir Frases? está ligada e há uma frase ativa.

Configurações da comanda (de comanda › Configurações gerais):

Variável O que é
{{ConfiguracaoComanda.MensagemRodape}} A mensagem do rodapé.
{{ExibirMensagemRodape}} Verdadeiro quando há mensagem de rodapé.
{{ConfiguracaoComanda.ProdutosAdicionaisComanda}} A lista dos produtos adicionais. Cada item tem {{Descricao}} e {{ValorUnitario}}.
{{ProdutosAdicionaisAgrupadosPorDois}}, {{ProdutosAdicionaisAgrupadosPorTres}} A mesma lista, em grupos de dois ou de três, para montar uma grade com vários adicionais por linha.
{{LinhasEmBranco}} Uma lista com tantos itens quanto a Qtd. Linhas em branco, para repetir linhas vazias.
{{ConfiguracaoComanda.ImprimirCodigoBarras}} Verdadeiro quando a opção Imprimir código de barras? está ligada.
{{CodigoBarras}} O conteúdo do código de barras, montado pelo template do código.

Outras:

Variável O que é
{{PrecoAtual}} O valor do quilo do preço em uso, conforme a tabela do dia.
{{ModalidadePorQuilo}} Verdadeiro quando o preço é Por Quilo (falso no Fixo).
{{ComandaLivre}} Verdadeiro na comanda livre (sem peso e sem valor).
{{Gratis}} Verdadeiro quando há peso, mas o total é zero.

Depois do nome da variável, ponha : e o formato desejado:

Formato Exemplo Resultado
C2 (moeda) {{Pesagem.Total:C2}} R$ 27,93
N3 (3 casas) {{Pesagem.PesoAferido:N3}} 0,700
N2 (2 casas) {{Pesagem.ValorUnitario:N2}} 39,90
N0 (sem casas) {{Pesagem.Quantidade:N0}} 1
dd/MM/yyyy (data) {{Pesagem.Data:dd/MM/yyyy}} 24/10/2026
HH:mm (hora) {{Pesagem.Data:HH:mm}} 12:15
D6 (zeros à esquerda) {{Pesagem.Numero:D6}} 000123

Para imprimir um trecho só quando uma variável é verdadeira (ou está preenchida), use {{#Variavel}} e {{/Variavel}}. Para imprimir só quando ela é falsa (ou está vazia), use {{^Variavel}} e {{/Variavel}}:

{{#Empresa.Site}}
<p text-center>{{Empresa.Site}}</p>
{{/Empresa.Site}}
{{#ModalidadePorQuilo}}{{Pesagem.Quantidade:N3}}kg{{/ModalidadePorQuilo}}
{{^ModalidadePorQuilo}}{{Pesagem.Quantidade:N0}}{{/ModalidadePorQuilo}}

O primeiro trecho só imprime o site se ele estiver cadastrado. O segundo mostra a quantidade com 3 casas e “kg” nos preços por quilo, e sem casas nos preços fixos.

Quando a variável é uma lista, {{#Lista}} … {{/Lista}} repete o trecho uma vez para cada item. Dentro do trecho, use os campos do item:

<table no-border>
{{#ConfiguracaoComanda.ProdutosAdicionaisComanda}}
<tr>
<td>{{Descricao}}</td>
<td text-right>{{#ValorUnitario}}{{ValorUnitario:C2}}{{/ValorUnitario}}</td>
</tr>
{{/ConfiguracaoComanda.ProdutosAdicionaisComanda}}
</table>

Nas listas agrupadas (ProdutosAdicionaisAgrupadosPorDois e ...PorTres), cada item é um grupo; use {{#.}} … {{/.}} para repetir os produtos do grupo, como faz o Modelo 07.

Tudo o que é impresso precisa estar dentro de um bloco. Texto solto, fora de um bloco, não é impresso.

Marcação O que faz
<p>texto</p> Parágrafo. O texto quebra nas palavras quando não cabe na linha.
<table>, <tr>, <td> Tabela: <table> abre a tabela, cada <tr> é uma linha e cada <td> é uma célula.
<br/> Linha em branco.
<hr/> Linha separadora, com traços de ponta a ponta.
<logo/> Logo cadastrado em Empresa. Sem logo, não imprime nada.
<bar-code>...</bar-code> Código de barras.

Espaços repetidos e quebras de linha do texto do modelo não contam: cada bloco começa numa linha nova, e o texto dentro dele é ajustado à largura do papel.

O atributo font-size define o tamanho da letra do bloco inteiro:

Atributo Letra
font-size="small" Pequena.
font-size="normal" Normal (o padrão).
font-size="large" Grande.

Quantos caracteres cabem em cada tamanho é o que está em Configurações › Impressora (Fonte pequena, Fonte média e Fonte grande). Na letra grande cabem bem menos caracteres: um nome comprido quebra em duas linhas.

<p font-size="large" bold text-center>{{Empresa.Nome}}</p>
<p font-size="small">Letra pequena, para textos longos.</p>
Atributo Efeito
bold Negrito.
underline Sublinhado.
italic Itálico, nas impressoras que têm esse recurso.
<p bold underline>TOTAL: {{Pesagem.Total:C2}}</p>
Atributo Efeito
text-left À esquerda (o padrão).
text-center Centralizado.
text-right À direita.
text-justified Preenche a linha inteira.
text-top, text-middle, text-bottom Alinhamento vertical dentro de uma linha de tabela mais alta.

Também vale a forma align="left", align="center" ou align="right". O alinhamento pode ser posto no <p>, na <table>, na <tr> ou na <td>; o mais específico vence.

As tabelas são o jeito de pôr informações lado a lado na mesma linha.

  • As colunas são definidas pela primeira linha (<tr>). As outras linhas devem ter a mesma quantidade de células.
  • A largura de cada coluna é dada pelo atributo width nas células da primeira linha:
Valor de width Largura da coluna
width="10" Exatamente 10 caracteres.
width="auto" Do tamanho do maior texto da coluna.
width="*" Divide o espaço que sobra (o padrão).
width="2*" Recebe o dobro do espaço que sobra de uma coluna *.
  • A altura de uma linha pode ser fixada com height na <tr>: height="3" dá 3 linhas de altura. O padrão, auto, cresce conforme o texto.
<table no-border>
<tr>
<td>{{Pesagem.Descricao}}</td>
<td width="auto" text-right>{{Pesagem.Total:C2}}</td>
</tr>
</table>

As tabelas nascem com todas as bordas. Para mudar, use estes atributos na <table>:

Atributo Bordas
all-borders Todas.
no-border Nenhuma.
inside-borders Só as internas, entre linhas e colunas.
inside-horizontal-border Só as linhas horizontais internas.
inside-vertical-border Só as divisões verticais internas.
outside-borders Só o contorno.
top-border, bottom-border, left-border, right-border Uma borda externa.
header-border Uma caixa em volta da primeira linha (o cabeçalho).
white-space-border Bordas de espaço em branco.
white-space-vertical-border Separa as colunas com espaço, sem linhas.

Os atributos são aplicados na ordem em que aparecem. O Modelo 01, por exemplo, usa <table bottom-border inside-borders top-border>.

Para trocar os caracteres das bordas, use border="*" (todos), edge (as arestas), corner (os cantos) ou um de border-left, border-top, border-right, border-bottom, border-top-left, border-top-right, border-bottom-right e border-bottom-left. O atributo pad-value="." troca o caractere que preenche o espaço vazio da célula, ótimo para listas com pontilhado.

<hr/> desenha uma linha de traços na largura do papel. Use pad-value para outro caractere: <hr pad-value="="/>.

<logo/> imprime o logo cadastrado em Empresa. Atributos opcionais:

  • align="left", align="center" ou align="right": posição na linha.
  • width e height: tamanho em pontos da impressora. Informando só um dos dois, a proporção da imagem é mantida.
<logo align="center"/>

<bar-code> imprime um código de barras do tipo escolhido nas configurações gerais (EAN-13 ou Code128). O normal é usar o código montado lá, só quando a opção estiver ligada:

{{#ConfiguracaoComanda.ImprimirCodigoBarras}}
<bar-code>{{CodigoBarras}}</bar-code>
{{/ConfiguracaoComanda.ImprimirCodigoBarras}}
<logo align="center"/>
<p bold font-size="large" text-center>{{Empresa.Nome}}</p>
<hr/>
<table no-border>
<tr>
<td>Comanda N.{{Pesagem.Numero}}</td>
<td text-right>{{Pesagem.Data:dd/MM/yyyy HH:mm}}</td>
</tr>
</table>
<hr/>
<table no-border font-size="large">
<tr>
<td>{{Pesagem.Descricao}}</td>
<td width="auto" text-right>{{^ComandaLivre}}{{Pesagem.Total:C2}}{{/ComandaLivre}}</td>
</tr>
</table>
{{#ModalidadePorQuilo}}
<p>{{Pesagem.PesoAferido:N3}} kg x {{Pesagem.ValorUnitario:C2}}</p>
{{/ModalidadePorQuilo}}
{{#ExibirMensagemRodape}}
<br/>
<p text-center>{{ConfiguracaoComanda.MensagemRodape}}</p>
{{/ExibirMensagemRodape}}
{{#ConfiguracaoComanda.ImprimirCodigoBarras}}
<bar-code>{{CodigoBarras}}</bar-code>
{{/ConfiguracaoComanda.ImprimirCodigoBarras}}
Sintoma Causa provável
Um dado não aparece Nome da variável escrito errado ou com maiúsculas/minúsculas trocadas (não dá erro, só fica em branco).
Um texto não sai na comanda O texto está fora de um bloco (<p>, <table>).
Um trecho inteiro some Uma condição {{#...}} sem o {{/...}} correspondente, ou com o nome diferente no fechamento.
Colunas desalinhadas As linhas da tabela não têm a mesma quantidade de células da primeira linha.
Linhas quebrando no meio Os caracteres por linha da impressora estão maiores do que o papel comporta.