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#
| Propriedade | Tipo | Padrão | Descrição |
|---|---|---|---|
content | string | — | Texto 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 |
bold | bool | false | Negrito |
italic | bool | false | Itá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
}
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.