v0.3.1 — configurable PDF page size + orientation
Minor additive release. Two new optional fields on `ReportSpec`, both defaulting to current behaviour so existing specs render identically.
What's new
```yaml
report:
format: pdf
output: reports/{name}-{date}.pdf
title: "Monthly Revenue — {date}"
pdf_page_size: A3 # "A4" (default) or "A3"
pdf_orientation: landscape # "portrait" (default) or "landscape"
```
| Field | Values | Default |
|---|---|---|
| `pdf_page_size` | `A4`, `A3` | `A4` |
| `pdf_orientation` | `portrait`, `landscape` | `portrait` |
Reach for A3 or landscape when a table has many columns or wide cell values that wrap awkwardly in A4 portrait — the same content, just more horizontal room. Both fields are ignored for `markdown` / `html` output.
Under the hood
The previously-static `_PRINT_CSS` constant became a `_print_css(page_size, orientation)` function that builds the `@page { size: ...; }` rule dynamically (`A4` / `A4 landscape` / `A3` / `A3 landscape`). `render_pdf` reads the two new spec fields and threads the built CSS through `render_html`'s `extra_css` parameter — no new runtime dependencies, no breaking changes.
Install
```bash
pip install orionbelt-runner==0.3.1
with the PDF extra:
pip install 'orionbelt-runner[pdf]==0.3.1'
```