v13.1+ printing support with per-widget PrintOptions: hide, pageBreak
and orientation, combined with the same content-sized, non-slicing layout from
Print grid.
Notes: a hidden widget (Item 4) leaves no gap - the next widget reflows up to take its place. An
orientation section stays in effect until something else forces a new page, so the widget
that should resume portrait after a landscape section (Item 8) sets orientation: 'portrait'
explicitly rather than relying on it reverting on its own.
breakInside: true (Item 11) lets a widget that's taller than a full page (ex: a long table)
fragment across pages instead of being pushed whole to the next one, leaving a blank gap. Item 12 combines
it with the gs-print-avoid-break-after utility class to keep a section header attached to
the row of widgets right after it - see print_README.md for details.