From fb21e8efa65662dcb6c2cc7ed693dea91888c3a7 Mon Sep 17 00:00:00 2001 From: Anders Betts Date: Sun, 20 Sep 2026 15:08:58 +0200 Subject: invoice: render the document as PDF --- docs/INVOICING.md | 49 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 16 deletions(-) (limited to 'docs/INVOICING.md') diff --git a/docs/INVOICING.md b/docs/INVOICING.md index 8d08068..f509997 100644 --- a/docs/INVOICING.md +++ b/docs/INVOICING.md @@ -62,19 +62,34 @@ Grid (points, origin top-left; refined against the originals in | Element | x | y | |---|---|---| -| Header bar (full width) | 0 | 48–80 | -| Wordmark | 20 | 55 | -| `FAKTURA` (right-aligned) | 577 | 55 | -| Label column (right-aligned at 114) | 57–114 | 96 + 14.7/row | -| Value column | 178 | same rows | -| Fakturaadress block | 556 | 142 + 22/line | -| Table header | 20 | 247 | -| Table columns | 20, 119, 343, 409, 484, 544 | — | -| Summary block | 282 / 445 | 514 + 14.7/row | -| Bankgiro / OCR | 475 | 579 / 592 | -| `Summa att betala SEK` | 407 | 609 | -| Footer | 20, 119, 264 | 638 + 14.7/row | -| Page number | 577 | 820 (right) | +| Header bar (x 17.3–577.7) | 17.3 | 53.3–75.7 | +| Wordmark `MAKANDRA AB` (ink left/baseline) | 21.74 | 69.14 | +| `FAKTURA` (ink right/baseline) | 576.87 | 69.14 | +| Info labels (bold 7.285 pt), right-aligned | 113.98 | 101.11 + 14.71/row | +| Info values (9.107 pt), left-aligned | 118.87 | same rows | +| Dröjsmålsränta (3 fixed lines) | 118.87 | 174.03 + 10.47/line | +| Fakturaadress block (name always first slot) | 370.35 | 115.82 + 14.71/line | +| Table header bar (x 17.3–577.7) | 17.3 | 242.43–257.85 | +| Table columns: left edges | 20.10, 118.87 | baseline 253.81 | +| Table columns: right edges | 365.45, 433.39, 504.15, 574.89 | — | +| First table row | 20.10/118.87 | 268.53, 14.71/grid row | +| Summary left labels / values, right-aligned | 329.76 / 365.45 | 518.60, 533.31, 548.03, 569.04, 583.75 | +| Rule above summary (0.70 pt, black) | 17.3–577.7 | 507.57 | +| Rule above footer (0.70 pt, black) | 17.3–577.7 | 621.76 | +| Summary right labels / values, right-aligned | 504.17 / 574.89 | same rows | +| `OCR` row | 504.15 / 574.89 | 598.46 | +| `Summa att betala SEK` (bold) | 504.17 / 574.89 | 615.24 | +| Footer headings (bold 6.375 pt) | 20.10, 118.87, 263.88 | 642.47 | +| Footer values (9.107 pt) | 20.10, 118.87, 334.63 | 656.60, 671.31, 686.02 | +| Page number | 567.43 | 819.80 (9.75 pt) | + +Table rows: the first row's baseline is 268.53, every grid row is 14.71 pt. +A row's `description` lines print one grid row apart, except that the +first extra line starts one blank grid row lower (29.42 pt): the original +sheets use that gap before the `Period ...` line. The next invoice row +starts `(description lines + 1)` grid rows below the current one. The +left and right summary blocks are anchored at fixed positions, not +reflowed after the table. Fields, in the original's order (note: the original says `Betalningsvilkor`, kept for fidelity): @@ -93,9 +108,11 @@ Fields, in the original's order (note: the original says - Footer: `Adress` (org name, address), `Kontakt` (phone, e-mail), `Orgnr`, `Momsregnr`, `Godkänd för F-skatt`. -Amounts: table cells print kronor with no decimals when whole, otherwise -two; the summary prints `14 400,00` (space thousands separator, comma -decimal). A single trailing page number `1`. +Amounts: table cells and the summary's plain kronor cells print no +thousands separator and no decimals when the amount is whole, otherwise a +comma decimal (e.g. `73200`, `12,50`). Only `Summa att betala SEK` is +grouped and always two decimals: `91 500,00`. A single trailing page +number `1`. ## 3. Numbering and OCR -- cgit v1.3