Skip to content

CLI

O sulfite_cli é uma ferramenta de linha de comando que recebe um relatório JSON e um payload, e gera um PDF. Não depende do Flutter SDK — é Dart puro.

Instalação

Via Dart

bash
cd cli/
dart pub get
dart run sulfite_cli.dart -i report.json -d data.json -o output.pdf

Compilar para binário nativo

bash
cd cli/
dart compile exe sulfite_cli.dart -o sulfite
./sulfite -i report.json -d data.json -o output.pdf

O binário compilado roda sem o Dart SDK instalado.

Opções

FlagLongaObrigatórioDescrição
-i--inputSimCaminho para o JSON de definição do relatório
-d--dataSimCaminho para o JSON de payload
-o--outputSimCaminho do PDF de saída
-f--fontsNãoReservado para fontes customizadas (ainda não implementado)
-v--verboseNãoLog detalhado
-h--helpNãoExibir ajuda

Exemplo

bash
# Gerar nota fiscal
./sulfite -i examples/01-invoice/report.json \
          -d examples/01-invoice/data.json \
          -o invoice.pdf

# Com log detalhado
./sulfite -i report.json -d data.json -o output.pdf -v

Fontes customizadas (status atual)

O diretório de fontes deve conter arquivos TTF com estes nomes:

fonts/
├── regular.ttf
├── bold.ttf
├── italic.ttf
└── bolditalic.ttf
bash
./sulfite -i report.json -d data.json -o output.pdf -f ./fonts/

Nota: no estado atual do CLI, a flag -f ainda não carrega fontes. O renderer usa Helvetica.

Pipeline

O CLI executa a mesma pipeline do engine:

  1. Lê e parse do JSON do relatório → ReportDefinition
  2. Lê o JSON de payload
  3. DataProcessor.process()ProcessedData
  4. PdfRenderer.render() → bytes do PDF
  5. Escreve o arquivo de saída

Limitações

  • Gera apenas PDF (sem HTML, CSV ou Excel)
  • Suporte a fontes customizadas via -f ainda não implementado no CLI

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