Logosulfite.app
rafagazani/sulfite 999999

Text

Elemento de texto estático

Text#

Renderiza texto fixo na posição indicada. Não depende de dados — o conteúdo é definido diretamente no JSON.

JSON#

{
  "type": "text",
  "id": "title",
  "x": 40,
  "y": 20,
  "width": 240,
  "height": 40,
  "content": "INVOICE",
  "fontSize": 32,
  "bold": true,
  "color": "1976d2",
  "align": "center",
  "verticalAlign": "middle",
  "padding": 6,
  "hasBorder": true,
  "borderColor": "1976d2",
  "borderWidth": 1,
  "borderDashed": false
}

Propriedades#

PropriedadeTipoPadrãoDescrição
contentstringTexto a ser exibido
zIndex int 0 Ordem de empilhamento — valores maiores ficam acima (use -1 para fundos)
width double 120.0 Largura da caixa de texto
height double 20.0 Altura da caixa de texto
fontSize double 12.0 Tamanho da fonte em pontos
boldboolfalseNegrito
italicboolfalseItálico
color string "000000" Cor em hexadecimal (sem #)
align string "left" Alinhamento horizontal: left, center, right
verticalAlign string "top" Alinhamento vertical: top, middle, bottom
padding double 0.0 Espaçamento interno da caixa
hasBorder bool false Exibir borda
borderColor string "000000" Cor da borda
borderWidth double 1.0 Espessura da borda
borderDashed bool false Borda tracejada
borderDashGap double 4.0 Espaçamento do tracejado
wrap bool false Permite quebra de linha automática (multi-linha)

Quebra de linha#

Por padrão o elemento de texto exibe o conteúdo em uma única linha truncada com . Para parágrafos longos (contratos, observações, endereços), ative wrap: true:

{
  "type": "text",
  "id": "clausula_1",
  "x": 0,
  "y": 180,
  "width": 535,
  "height": 40,
  "content": "A COMODANTE cede e transfere o imóvel à COMODATÁRIA, gratuitamente, a título de comodato, para os fins especificados neste instrumento.",
  "fontSize": 9,
  "wrap": true
}
Quando `wrap: true`, defina `height` com folga suficiente para acomodar o texto completo — o container não cresce automaticamente na renderização posicional do Sulfite.

Variáveis de contexto#

O conteúdo pode incluir variáveis substituídas na renderização:

{ "content": "Página {page} de {totalPages}" }

Tokens {key} são interpolados usando os dados do contexto atual — rowContext (linha de detalhe) ou payload (cabeçalho/rodapé):

{ "content": "FONE {emit_fone}" }
{ "content": "CEP {emit_cep}" }

Se a chave não existir no contexto da linha, o sistema tenta o payload global; se não encontrar em nenhum, o token é mantido literal.


| Variável | Valor |
|----------|-------|
| `{page}` | Número da página atual |
| `{totalPages}` | Total de páginas |

Essas variáveis funcionam no PDF. Nos outros formatos, são substituídas por valores fixos.