Skip to content

Text

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

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
zIndexint0Ordem de empilhamento — valores maiores ficam acima (use -1 para fundos)
widthdouble120.0Largura da caixa de texto
heightdouble20.0Altura da caixa de texto
fontSizedouble12.0Tamanho da fonte em pontos
boldboolfalseNegrito
italicboolfalseItálico
colorstring"000000"Cor em hexadecimal (sem #)
alignstring"left"Alinhamento horizontal: left, center, right
verticalAlignstring"top"Alinhamento vertical: top, middle, bottom
paddingdouble0.0Espaçamento interno da caixa
hasBorderboolfalseExibir borda
borderColorstring"000000"Cor da borda
borderWidthdouble1.0Espessura da borda
borderDashedboolfalseBorda tracejada
borderDashGapdouble4.0Espaçamento do tracejado
wrapboolfalsePermite 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:

json
{
  "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
}

TIP

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:

json
{ "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é):

json
{ "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.

Sulfite do 🇧🇷 para o mundo © 2026 Rafael S. Pinheiro