diff --git a/app/index.html b/app/index.html index 41948ba..82c2023 100644 --- a/app/index.html +++ b/app/index.html @@ -564,20 +564,24 @@ async function generatePDF() { addPage(true); // Logo + title - let headerBlockH = szLg; + const mm10 = 10 * 2.83465; // 10 mm in points 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, width: lw, height: lhh }); - headerBlockH = Math.max(lhh, szLg); + // Absolute position: 10 mm from top-left, above all other content + const logoTop = pageH - mm10; + pg.drawImage(logoImage, { x: mm10, y: logoTop - lhh, width: lw, height: lhh }); + // Push cursor below logo with a small gap before remaining header elements + y = Math.min(y, logoTop - lhh - 8); } else if (CFG.organization) { pg.drawText(CFG.organization, { x: M.left, y, size: szLg, font: fontBold, color: accent }); + y -= szLg + 8; } const titleStr = 'REIMBURSEMENT FORM'; const tw = fontBold.widthOfTextAtSize(titleStr, szLg); - pg.drawText(titleStr, { x: M.left + W - tw, y: y - szLg, size: szLg, font: fontBold, color: accent }); - y -= headerBlockH + 8; + pg.drawText(titleStr, { x: M.left + W - tw, y, size: szLg, font: fontBold, color: accent }); + y -= szLg + 8; // Intro text if (CFG.intro) {