<!-- GENERATED from cli-spec.json v0.0.0-stub — do not edit -->

Convert a workbook to PDF, PDF/A-2b or PNG.

```
rendlio convert <input> -o <PATH> [options]
```

## Arguments

| Argument | Value | Required | Meaning |
|---|---|---|---|
| `<input>` | `FILE` | yes | Path to a `.xlsx` / `.xlsm` file, or `-` for stdin (bytes are buffered to a guarded temp file; the [resource limits](/docs/deployment#resource-limits) apply). |

## Options

| Option | Value | Default | Env var | Milestone | Meaning |
|---|---|---|---|---|---|
| `-o, --output` **required** | `PATH` | — | — | M1 | Output path, or `-` for stdout (single-document formats only). The extension does not infer the format — `--format` does. |
| `--format` | `pdf\|pdfa\|png` | `pdf` | — | M1 | `pdfa` = PDF/A-2b. `png` = one file per page. |
| `--pages` | `all\|1-5,8` | `all` | — | M1 | Page selection, applied after pagination. |
| `--sheets` | `"Summary,Data"` | `all-with-print-content` | — | M1 | Sheet filter by name (exact, case-sensitive); an unknown name → exit 3. |
| `--dpi` | `96..600` | `150` | — | M1 | PNG only. |
| `--png-pattern` | `PATTERN` | `{stem}-{page}.png` | — | M1 | `{stem}`, `{page}`, `{pages}` tokens; required when `-o -` is used with multi-page PNG (then invalid → exit 3). |
| `--culture` | `BCP-47` | `en-US` | `RENDLIO_CULTURE` | M1 | Locale for separators and month names when a number format lacks an explicit `[$-LCID]`. |
| `--fonts-dir` *repeatable* | `PATH` | — | `RENDLIO_FONTS_DIR` | M1 | Prepends user font directories to font resolution. |
| `--use-system-fonts` | flag | `off` | — | M1 | Adds OS fonts to resolution — off by default for determinism. |
| `--recalculate` | `off\|strict-v1` | `off` | `RENDLIO_RECALCULATE` | M1 | `off` renders cached formula values. `strict-v1` is planned (M4); requesting it before it ships → exit 3, "not available in this build". |
| `--reference-date` | `ISO-DATE` | `today (UTC)` | — | M1 | Anchors timePeriod conditional formats; set it for reproducible runs. |
| `--deterministic` | flag | — | — | M1 | Fixed PDF dates (2000-01-01T00:00:00Z), document ID = SHA-256(input bytes ‖ canonical options), stable font-subset tags — identical input + options ⇒ identical bytes. |
| `--timeout` | `SECONDS` | `300` | `RENDLIO_TIMEOUT` | M1 | On hit: partial outputs deleted, exit 4. |
| `--max-memory` | `MB` | `1024` | `RENDLIO_MAX_MEMORY` | M1 | Memory soft cap, applied via checkpoints. On hit: partial outputs deleted, exit 4. The default is under review (FS-10 OPEN-3): the CLI contract prints `1024`, while the engine's canonical limits registry applies unset (no cap) unless one is given — set it explicitly if you rely on it. See [resource limits](/docs/deployment#resource-limits). |
| `--report` | `PATH\|-` | — | — | M1 | Writes the [compatibility report](/docs/compat-report) JSON (`-` = stderr summary only). Automation should always set it; humans usually rely on the stderr summary. |
| `--emit-ir` | `PATH` | — | — | M1 | Canonical intermediate-representation JSON (diagnostic). |
| `--license` | `PATH\|community` | — | `RENDLIO_LICENSE` | M1 | See [licence resolution](/docs/cli#licence-resolution). |
| `--quiet` | flag | — | — | M1 | Reduces stderr verbosity; errors are still printed. |
| `--verbose` | flag | — | — | M1 | Increases stderr verbosity. |
| `--log-json` | flag | — | — | M1 | stderr as NDJSON events (for programmatic hosts). |

## Examples

The defaults: ordinary PDF, every sheet with print content, the stderr summary only.

```bash
rendlio convert report.xlsx -o report.pdf
```

PDF/A-2b plus a machine-readable compatibility report — the shape to use in automation.

```bash
rendlio convert book.xlsm -o book.pdf --format pdfa --report report.json
```

Streaming both directions. Only document bytes reach stdout, so the pipe is safe.

```bash
cat in.xlsx | rendlio convert - -o - > out.pdf
```

One PNG per page at 200 dpi, named by the pattern.

```bash
rendlio convert big.xlsx -o pages/ --format png --dpi 200 --png-pattern "p{page}.png"
```

## See also

- [Global options](/docs/cli#global-options) and [environment variables](/docs/cli#environment-variables) — they apply here too
- [Exit codes](/docs/cli#exit-codes) — what `rendlio convert` returns and what it promises