Skip to content

Etiquetas

O Sulfite suporta um modo etiqueta para gerar folhas ou rolos de etiquetas. Configura-se via labelConfig dentro de pageSettings.

Configuração

json
{
  "pageSettings": {
    "format": "A4",
    "orientation": "portrait",
    "margins": { "left": 5, "right": 5, "top": 5, "bottom": 5 },
    "labelConfig": {
      "format": "sheet",
      "columns": 3,
      "rows": 13,
      "labelWidthMm": 33,
      "labelHeightMm": 21,
      "columnGapMm": 2,
      "rowGapMm": 0,
      "sheetMarginTopMm": 5,
      "sheetMarginBottomMm": 5,
      "sheetMarginLeftMm": 5,
      "sheetMarginRightMm": 5
    }
  }
}

Propriedades do LabelConfig

PropriedadeTipoPadrãoDescrição
formatstring"sheet""sheet" (folha) ou "roll" (rolo contínuo)
columnsint1Número de colunas de etiquetas
rowsint0Linhas por página (0 = contínuo)
labelWidthMmdouble100.0Largura de cada etiqueta em mm
labelHeightMmdouble50.0Altura de cada etiqueta em mm
columnGapMmdouble0.0Espaço horizontal entre colunas
rowGapMmdouble0.0Espaço vertical entre linhas
sheetMarginTopMmdouble5.0Margem superior da folha
sheetMarginBottomMmdouble5.0Margem inferior
sheetMarginLeftMmdouble5.0Margem esquerda
sheetMarginRightMmdouble5.0Margem direita
presetNamestring?nullNome de um preset pré-configurado

Presets

O Sulfite inclui presets de etiquetas comuns:

PresetFormatoTamanho (mm)Colunas × Linhas
Rolo 100×50mmroll100 × 501 × contínuo
Rolo 50×30mmroll50 × 301 × contínuo
Rolo 80×40mmroll80 × 401 × contínuo
Couché 50×30mmsheet50 × 302 × contínuo
A4 33×21mmsheet33 × 213 × 13
A4 50×30mmsheet50 × 302 × 9
A4 70×33mmsheet70 × 332 × 8
A4 100×42mmsheet100 × 421 × 6
A4 105×74mmsheet105 × 742 × 4

Para usar um preset:

json
{
  "labelConfig": {
    "presetName": "A4 50×30mm"
  }
}

Como funciona

Quando labelConfig está presente, o PDF renderer distribui os registros da DetailBand em grade:

┌─────────┬─────────┬─────────┐
│ Label 1 │ Label 2 │ Label 3 │
├─────────┼─────────┼─────────┤
│ Label 4 │ Label 5 │ Label 6 │
├─────────┼─────────┼─────────┤
│ Label 7 │ Label 8 │ Label 9 │
├─────────┼─────────┼─────────┤
│   ...   │   ...   │   ...   │
└─────────┴─────────┴─────────┘

Cada etiqueta contém os mesmos elementos da DetailBand, posicionados internamente por x e y.

Exemplo: etiqueta com barcode

json
{
  "bands": [
    {
      "type": "detail",
      "id": "label",
      "dataSourceId": "products",
      "height": 50,
      "elements": [
        { "type": "field", "id": "name", "x": 2, "y": 2, "width": 96, "binding": "product_name", "fontSize": 8 },
        { "type": "barcode", "id": "code", "x": 10, "y": 15, "width": 80, "height": 30, "value": "SKU-001", "format": "CODE128", "drawText": true }
      ]
    }
  ]
}

Limitações

  • Modo etiqueta é suportado apenas no PDF renderer
  • HTML, CSV e Excel ignoram o labelConfig

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