2.2 KiB
Client proposal PDF quality
Classic template selections were routed through the signature fallback and lost their original covers. Global settings only exposed 8 templates; grouping could also remove the modern buttons when classic choices were present. The new renderer supports all 21 existing IDs, retaining the order's selected style.
The 10 covers from commit a3616b7 were rendered and visually compared with the current application. Their editorial, letter, ticket, photographic and sunny compositions informed the restored designs. Each of the 21 covers now has its own composition. Menu pages use matching fonts and colors, with measured list, compact and two-column card layouts.
Local, licensed Cyrillic fonts (Manrope and Playfair Display, including italic) finish loading before layout. Name, composition, quantity, unit price and line total are retained. Long descriptions flow across pages. Prices share a right edge; page numbers, company identity and contacts have reserved space. Gallery photos fill remaining space rather than adding empty pages. Per-order uploaded gallery images are resolved before conversion, for every template.
Preview and download use the same A4 canvases, at approximately 290 dpi for ordinary offers and 242 dpi for catalogs above 24 lines to bound memory. The existing raster PDF writer is retained. The generic selector thumbnails contain fictional demo data and Caterium branding. Company names/logos in actual exports still come from the workspace.
Validation:
npm run check:deploypassed.- Full desktop/mobile suite: 104 passed, 2 skipped; 10 focused proposal checks passed after adding the real preview/download test.
- 21 final PDFs, 92 A4 pages, rendered for visual inspection. Earlier/current references are outside the repository under
../caterium-pdf-20260918/tmp/pdfs/. - Tests exercise all 21 template routes, local fonts, long Cyrillic text, page boundaries, collisions, privacy switches, custom photos, picker groups and actual PDF downloads.
- Reproducible fictional fixtures:
ops/pdf/audit-proposals.mjs,render-audit.py,build-showcase.py.
PWA cache: v92-20260918-proposal-quality. No database migration or customer data changes.