From 64c61dcca80a6e89a6da8e639431cfc408a30526 Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Tue, 12 May 2026 23:48:40 -0400 Subject: [PATCH] feat(sticker): much bigger text + QR +30% wkhtmltopdf renders CSS font-size at a smaller physical scale than the em-square math predicts (a "30pt" cell text was only ~4mm tall visually). Pushing all type up significantly so it actually reads at scan/print distance: Text bumps: - Body field text 30pt -> 50pt (+67%, label + value) - WO# 56pt -> 72pt (+29%) - Notes label 30pt -> 44pt - Notes content 22pt -> 30pt (+36%) - Muted rev tag 22pt -> 30pt - Body cell padding 0 10px -> 0 8px (a touch more horizontal room for long values now that the font is bigger) QR + 30% as asked: - Wrapper 280 -> 365px (+30.4%). Image 368 -> 480px, offset -44 -> -58px (recomputed for the new quiet-zone crop). Header re-balanced for the bigger content: - Height 25% -> 32% (fits the +30% QR + bigger WO# + bigger logo at 135px) - Body band: 75% -> 68% (rows now ~9.6mm tall; line-height 1.0 keeps the 50pt body text snug inside) Co-Authored-By: Claude Opus 4.7 (1M context) --- .../fusion_plating_reports/__manifest__.py | 2 +- .../report/report_fp_wo_sticker.xml | 47 +++++++++---------- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/fusion_plating/fusion_plating_reports/__manifest__.py b/fusion_plating/fusion_plating_reports/__manifest__.py index 69e1e9e5..df5b435c 100644 --- a/fusion_plating/fusion_plating_reports/__manifest__.py +++ b/fusion_plating/fusion_plating_reports/__manifest__.py @@ -3,7 +3,7 @@ # License OPL-1 (Odoo Proprietary License v1.0) { 'name': 'Fusion Plating — Reports', - 'version': '19.0.10.7.0', + 'version': '19.0.10.8.0', 'category': 'Manufacturing/Plating', 'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.', 'depends': [ diff --git a/fusion_plating/fusion_plating_reports/report/report_fp_wo_sticker.xml b/fusion_plating/fusion_plating_reports/report/report_fp_wo_sticker.xml index eb86073c..55bbf3d3 100644 --- a/fusion_plating/fusion_plating_reports/report/report_fp_wo_sticker.xml +++ b/fusion_plating/fusion_plating_reports/report/report_fp_wo_sticker.xml @@ -112,13 +112,11 @@ page-break-inside: avoid; } /* ---- HEADER band: 3 horizontal cells, divided by vertical - rules. Logo / WO# / QR. Trimmed from 30% to 25% so - the body band (which holds 7 rows) gets more vertical - room — needed for the bigger field font. ---- */ + rules. Logo / WO# / QR. 32% to fit the +30% QR. ---- */ .fp-sticker-head-wrap { position: absolute; left: 0; right: 0; top: 0; - height: 25%; + height: 32%; border-bottom: 2px solid #000; box-sizing: border-box; } @@ -140,13 +138,13 @@ td.fp-sticker-head-logo { border-right: 2px solid #000; padding: 0 6px; } td.fp-sticker-head-wo { border-right: 2px solid #000; } .fp-sticker-logo { - max-height: 105px; + max-height: 135px; max-width: 95%; display: inline-block; vertical-align: middle; } .fp-sticker-wo { - font-size: 56pt; + font-size: 72pt; font-weight: 900; letter-spacing: 0.1mm; line-height: 1; @@ -156,32 +154,29 @@ /* QR wrapper crops the ~12% quiet-zone the barcode generator adds around the QR pattern. We render the image larger than the wrapper and offset so the wrapper clips that border out. - Wrapper 280px = ~23.7mm at 300dpi → fits the 25% header - band. High-def source (600x600) means it still prints - crisp at this size. ---- */ + Wrapper 365px = ~30.9mm at 300dpi (30% larger than the + previous 280px). 600x600 source = high-def at print scale. ---- */ .fp-sticker-qr-wrap { - width: 280px; - height: 280px; + width: 365px; + height: 365px; display: inline-block; position: relative; overflow: hidden; } .fp-sticker-qr { - width: 368px; - height: 368px; + width: 480px; + height: 480px; position: absolute; - top: -44px; - left: -44px; + top: -58px; + left: -58px; margin: 0; display: block; } - /* ---- BODY band: left fields region + right Notes region. - 75% of page height so the 7 rows can each be ~10.6mm - tall, fitting 30pt field text with breathing room. ---- */ + /* ---- BODY band: left fields region + right Notes region. ---- */ .fp-sticker-body-wrap { position: absolute; left: 0; right: 0; - top: 25%; bottom: 0; + top: 32%; bottom: 0; } .fp-body-left { position: absolute; @@ -209,8 +204,8 @@ col.fp-col-value { width: 62%; } table.fp-sticker-body td { vertical-align: middle; - padding: 0 10px; - font-size: 30pt; + padding: 0 8px; + font-size: 50pt; line-height: 1.0; } td.fp-sticker-label { @@ -225,16 +220,16 @@ white-space: nowrap; } .fp-sticker-strong { font-weight: 700; } - .fp-sticker-muted { color: #555; font-size: 22pt; } + .fp-sticker-muted { color: #555; font-size: 30pt; } /* Notes column on the right side of the body. */ .fp-notes-label { font-weight: 700; - font-size: 30pt; - margin: 0 0 8px 0; + font-size: 44pt; + margin: 0 0 10px 0; } .fp-notes-content { - font-size: 22pt; - line-height: 1.2; + font-size: 30pt; + line-height: 1.15; white-space: pre-line; word-wrap: break-word; overflow: hidden;