Skip to content

Elementos

Cada elemento é posicionado dentro de uma band por coordenadas x e y (em pontos, relativas ao canto superior esquerdo da band). Todos compartilham estas propriedades base:

PropriedadeTipoPadrãoDescrição
typestringTipo do elemento (discriminador)
idstringIdentificador único
xdoublePosição horizontal
ydoublePosição vertical (relativa à band)
zIndexint0Ordem de empilhamento (maior = acima)

Tipos disponíveis

TipoClasse DartUso
textTextElementTexto estático com suporte a interpolação {key}
fieldFieldElementBinding a dados com formatação
aggregateAggregateElementSUM, COUNT, AVG, MAX, MIN
imageImageElementImagem (base64 ou URL)
tableTableElementTabela com colunas e data source
chartChartElementGráfico (bar, line, pie)
barcodeBarcodeElementCódigo de barras / QR Code
lineLineElementLinha entre dois pontos (sólida ou tracejada)
rectRectElementRetângulo
circleCircleElementCírculo / elipse
spacerSpacerElementEspaço vazio
richTextRichTextElementTexto com múltiplos estilos

Divider removido

O tipo divider foi unificado com line. JSONs antigos com "type": "divider" continuam sendo aceitos via alias, mas novos relatórios devem usar line.

Exemplo de posicionamento

json
{
  "type": "header",
  "id": "hdr",
  "height": 80,
  "elements": [
    { "type": "text", "id": "title", "x": 40, "y": 20, "content": "RELATÓRIO", "fontSize": 24, "bold": true },
    { "type": "text", "id": "date", "x": 400, "y": 20, "content": "Fevereiro 2026", "fontSize": 10, "color": "666666" },
    { "type": "line", "id": "sep", "x": 40, "y": 60, "x2": 555, "y2": 60, "color": "cccccc" }
  ]
}

Os mesmos coordenadas produzem posicionamento idêntico em PDF e HTML — o Sulfite usa position:absolute no HTML para replicar o layout do PDF.

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