Fix PDF logo overlapping form fields

The logo was placed with a fixed +10pt offset that didn't account for
actual logo height. Content below always advanced by a fixed 28pt, so
any logo taller than ~18pt bled into the intro text and form fields.

Now the logo is anchored with its top at the cursor position (bottom at
y - lhh), the title baseline aligns to the same top edge, and y advances
by max(logoHeight, titleSize) + 8pt gap before the next element.

https://claude.ai/code/session_016aNBqHpiQciTr1DvNvE7nk
This commit is contained in:
Claude 2026-05-19 09:20:52 +00:00
parent f72607fa9e
commit 9749b70fe2
No known key found for this signature in database

View file

@ -564,18 +564,20 @@ async function generatePDF() {
addPage(true);
// Logo + title
let headerBlockH = szLg;
if (logoImage) {
const maxW = (CFG['logo-maxwidth'] || 4) * 28.3465;
const scale = Math.min(maxW / logoImage.width, 50 / logoImage.height, 1);
const lw = logoImage.width * scale, lhh = logoImage.height * scale;
pg.drawImage(logoImage, { x: M.left, y: y - lhh + 10, width: lw, height: lhh });
pg.drawImage(logoImage, { x: M.left, y: y - lhh, width: lw, height: lhh });
headerBlockH = Math.max(lhh, szLg);
} else if (CFG.organization) {
pg.drawText(CFG.organization, { x: M.left, y, size: szLg, font: fontBold, color: accent });
}
const titleStr = 'REIMBURSEMENT FORM';
const tw = fontBold.widthOfTextAtSize(titleStr, szLg);
pg.drawText(titleStr, { x: M.left + W - tw, y, size: szLg, font: fontBold, color: accent });
y -= 28;
pg.drawText(titleStr, { x: M.left + W - tw, y: y - szLg, size: szLg, font: fontBold, color: accent });
y -= headerBlockH + 8;
// Intro text
if (CFG.intro) {