feat(sticker): bigger field labels + values + notes text
Trimmed the header from 30% to 25% of page height to free up vertical room for the body band's 7 rows. Each row is now ~10.45mm tall (was 9.88mm), so the field font fits comfortably at the bigger size. Size bumps: - Body field text 26pt -> 30pt (label + value, +15%) - Muted rev tag 18pt -> 22pt - Notes label 26pt -> 30pt - Notes content 19pt -> 22pt (+16%, wraps cleanly to 2 lines when the customer description runs long) Header re-fit (smaller cells, same content): - Header height 30% -> 25% - WO# font 62pt -> 56pt - Logo max-height 135 -> 105px - QR wrapper 340 -> 280px (image 447 -> 368px, offset -53 -> -44px to keep the quiet-zone crop math right) - High-def 600x600 QR source unchanged — still prints crisp at the smaller wrapper size Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
# License OPL-1 (Odoo Proprietary License v1.0)
|
||||
{
|
||||
'name': 'Fusion Plating — Reports',
|
||||
'version': '19.0.10.6.0',
|
||||
'version': '19.0.10.7.0',
|
||||
'category': 'Manufacturing/Plating',
|
||||
'summary': 'PDF reports for Fusion Plating: quote, SO, WO, packing, BoL, CoC, invoice, receipt, quality + compliance.',
|
||||
'depends': [
|
||||
|
||||
@@ -112,11 +112,13 @@
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
/* ---- HEADER band: 3 horizontal cells, divided by vertical
|
||||
rules. Logo / WO# / QR. ---- */
|
||||
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. ---- */
|
||||
.fp-sticker-head-wrap {
|
||||
position: absolute;
|
||||
left: 0; right: 0; top: 0;
|
||||
height: 30%;
|
||||
height: 25%;
|
||||
border-bottom: 2px solid #000;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
@@ -138,13 +140,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: 135px;
|
||||
max-height: 105px;
|
||||
max-width: 95%;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.fp-sticker-wo {
|
||||
font-size: 62pt;
|
||||
font-size: 56pt;
|
||||
font-weight: 900;
|
||||
letter-spacing: 0.1mm;
|
||||
line-height: 1;
|
||||
@@ -154,29 +156,32 @@
|
||||
/* 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 340px = ~28.8mm at 300dpi → fits the 30% header
|
||||
band with breathing room. ---- */
|
||||
Wrapper 280px = ~23.7mm at 300dpi → fits the 25% header
|
||||
band. High-def source (600x600) means it still prints
|
||||
crisp at this size. ---- */
|
||||
.fp-sticker-qr-wrap {
|
||||
width: 340px;
|
||||
height: 340px;
|
||||
width: 280px;
|
||||
height: 280px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.fp-sticker-qr {
|
||||
width: 447px;
|
||||
height: 447px;
|
||||
width: 368px;
|
||||
height: 368px;
|
||||
position: absolute;
|
||||
top: -53px;
|
||||
left: -53px;
|
||||
top: -44px;
|
||||
left: -44px;
|
||||
margin: 0;
|
||||
display: block;
|
||||
}
|
||||
/* ---- BODY band: left fields region + right Notes region ---- */
|
||||
/* ---- 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. ---- */
|
||||
.fp-sticker-body-wrap {
|
||||
position: absolute;
|
||||
left: 0; right: 0;
|
||||
top: 30%; bottom: 0;
|
||||
top: 25%; bottom: 0;
|
||||
}
|
||||
.fp-body-left {
|
||||
position: absolute;
|
||||
@@ -204,8 +209,8 @@
|
||||
col.fp-col-value { width: 62%; }
|
||||
table.fp-sticker-body td {
|
||||
vertical-align: middle;
|
||||
padding: 0 12px;
|
||||
font-size: 26pt;
|
||||
padding: 0 10px;
|
||||
font-size: 30pt;
|
||||
line-height: 1.0;
|
||||
}
|
||||
td.fp-sticker-label {
|
||||
@@ -220,16 +225,16 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
.fp-sticker-strong { font-weight: 700; }
|
||||
.fp-sticker-muted { color: #555; font-size: 18pt; }
|
||||
.fp-sticker-muted { color: #555; font-size: 22pt; }
|
||||
/* Notes column on the right side of the body. */
|
||||
.fp-notes-label {
|
||||
font-weight: 700;
|
||||
font-size: 26pt;
|
||||
margin: 0 0 6px 0;
|
||||
font-size: 30pt;
|
||||
margin: 0 0 8px 0;
|
||||
}
|
||||
.fp-notes-content {
|
||||
font-size: 19pt;
|
||||
line-height: 1.25;
|
||||
font-size: 22pt;
|
||||
line-height: 1.2;
|
||||
white-space: pre-line;
|
||||
word-wrap: break-word;
|
||||
overflow: hidden;
|
||||
|
||||
Reference in New Issue
Block a user