Gutschrift-PDF: Fusszeile auf Seite 1 (keine zweite Seite mehr)

Footer wurde mit fester y=790 gesetzt und lief dadurch ueber den
unteren Seitenrand -> pdfkit legte eine zweite Seite an. Position jetzt
aus Seitengeometrie berechnet (heightOfString + page.height/margins),
sodass die Fusszeile am unteren Rand der ersten Seite endet, auch bei
zweizeiligem Umbruch. Verifiziert: PDF hat nur noch 1 Seite.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-06 18:39:41 +02:00
co-authored by Claude Opus 4.8
parent f24c4308aa
commit 32236706db
+10 -2
View File
@@ -150,6 +150,9 @@ export async function generateCreditNotePdf(creditNoteId: number): Promise<{ buf
doc.fillColor('#000'); doc.fillColor('#000');
// ---- Fußzeile (Firmendaten) ---- // ---- Fußzeile (Firmendaten) ----
// Position aus der Seitengeometrie berechnen, damit die Fußzeile am
// unteren Rand der ERSTEN Seite endet und keine zweite Seite auslöst
// (auch wenn sie zweizeilig umbricht).
const footerParts = [ const footerParts = [
company.name, company.name,
company.managingDirector ? `GF: ${company.managingDirector}` : '', company.managingDirector ? `GF: ${company.managingDirector}` : '',
@@ -158,8 +161,13 @@ export async function generateCreditNotePdf(creditNoteId: number): Promise<{ buf
company.commercialRegister, company.commercialRegister,
company.iban ? `IBAN: ${company.iban}` : '', company.iban ? `IBAN: ${company.iban}` : '',
].filter(Boolean); ].filter(Boolean);
doc.fontSize(7).fillColor('#888') const footerText = footerParts.join(' · ');
.text(footerParts.join(' · '), 50, 790, { width: 495, align: 'center' }); const footerWidth = 495;
doc.fontSize(7).fillColor('#888');
const footerHeight = doc.heightOfString(footerText, { width: footerWidth, align: 'center' });
const bottomLimit = doc.page.height - doc.page.margins.bottom;
doc.text(footerText, 50, bottomLimit - footerHeight - 2, { width: footerWidth, align: 'center' });
doc.fillColor('#000');
doc.end(); doc.end();
const buffer = await done; const buffer = await done;