Character-count word wrap (printpdf's builtin fonts expose no glyph metrics) and per-boldness-run line groups (a bold speaker-name prefix gets its own line above the dialogue) — simple choices that keep the renderer self-contained with no bundled font asset.