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.pdfCompilar para binário nativo
bash
cd cli/
dart compile exe sulfite_cli.dart -o sulfite
./sulfite -i report.json -d data.json -o output.pdfO binário compilado roda sem o Dart SDK instalado.
Opções
| Flag | Longa | Obrigatório | Descrição |
|---|---|---|---|
-i | --input | Sim | Caminho para o JSON de definição do relatório |
-d | --data | Sim | Caminho para o JSON de payload |
-o | --output | Sim | Caminho do PDF de saída |
-f | --fonts | Não | Reservado para fontes customizadas (ainda não implementado) |
-v | --verbose | Não | Log detalhado |
-h | --help | Não | Exibir 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 -vFontes customizadas (status atual)
O diretório de fontes deve conter arquivos TTF com estes nomes:
fonts/
├── regular.ttf
├── bold.ttf
├── italic.ttf
└── bolditalic.ttfbash
./sulfite -i report.json -d data.json -o output.pdf -f ./fonts/Nota: no estado atual do CLI, a flag
-fainda não carrega fontes. O renderer usa Helvetica.
Pipeline
O CLI executa a mesma pipeline do engine:
- Lê e parse do JSON do relatório →
ReportDefinition - Lê o JSON de payload
DataProcessor.process()→ProcessedDataPdfRenderer.render()→ bytes do PDF- Escreve o arquivo de saída
Limitações
- Gera apenas PDF (sem HTML, CSV ou Excel)
- Suporte a fontes customizadas via
-fainda não implementado no CLI