Skip to content

v0.3.1 — configurable PDF page size + orientation

Choose a tag to compare

@ralfbecher ralfbecher released this 24 May 15:49

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'
```

Full diff

v0.3.0...v0.3.1