Generates the complete Swiss QR bill payment part as PDF.
Uses the pdf library. Layout matches the SIX style guide.
The QR code is drawn directly as filled rectangles from the QR matrix.
Long values (e.g. a long creditor name or street) are wrapped to the width of
their column via Pdf.text_wrap/5, so they never overrun into the QR code
(receipt) or off the page edge (payment part). Each information section is
laid out against the page cursor: text_wrap advances the cursor to the
bottom of the wrapped block, and the next field starts from there. Very long
unbreakable tokens are soft-broken so they wrap mid-word instead of
overrunning.
Font sizes follow the SIX style guide per section (§3.4): the receipt uses 6 pt headings / 8 pt values, the payment part 8 pt headings / 10 pt values, and the title 11 pt.