From 45c371a60dbed3a5324d1fdcf40202fc7e8327d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20P=C3=B6ttker?= Date: Fri, 8 May 2026 08:00:02 +0200 Subject: [PATCH] fix: adjust text y-coordinate to account for librsvg baseline rendering limitations --- .../src/label-print-agent/label-renderer.service.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/paperless-backend/src/label-print-agent/label-renderer.service.ts b/paperless-backend/src/label-print-agent/label-renderer.service.ts index 66144dc..116e24e 100644 --- a/paperless-backend/src/label-print-agent/label-renderer.service.ts +++ b/paperless-backend/src/label-print-agent/label-renderer.service.ts @@ -51,8 +51,11 @@ export class LabelRendererService { const fontWeight = el.bold ? 'bold' : 'normal'; const textAnchor = el.align === 'center' ? 'middle' : el.align === 'right' ? 'end' : 'start'; const maxWidthAttr = el.maxWidth ? ` textLength="${mm(el.maxWidth)}" lengthAdjust="spacingAndGlyphs"` : ''; + // librsvg (used by sharp) ignores dominant-baseline; add fontSize to y so that + // the stored coordinate is the top of the text, not the baseline. + const yBaseline = y + fontSize; parts.push( - `${content}`, + `${content}`, ); } else if (el.type === 'qr') { const x = mm(el.x);