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#
cd packages/sulfite_cli/
dart pub get
dart run sulfite_cli.dart -i report.json -d data.json -o output.pdf
Compilar para binário nativo#
cd packages/sulfite_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#
| 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#
# 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
./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