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:
@@ -150,6 +150,9 @@ export async function generateCreditNotePdf(creditNoteId: number): Promise<{ buf
|
||||
doc.fillColor('#000');
|
||||
|
||||
// ---- 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 = [
|
||||
company.name,
|
||||
company.managingDirector ? `GF: ${company.managingDirector}` : '',
|
||||
@@ -158,8 +161,13 @@ export async function generateCreditNotePdf(creditNoteId: number): Promise<{ buf
|
||||
company.commercialRegister,
|
||||
company.iban ? `IBAN: ${company.iban}` : '',
|
||||
].filter(Boolean);
|
||||
doc.fontSize(7).fillColor('#888')
|
||||
.text(footerParts.join(' · '), 50, 790, { width: 495, align: 'center' });
|
||||
const footerText = footerParts.join(' · ');
|
||||
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();
|
||||
const buffer = await done;
|
||||
|
||||
Reference in New Issue
Block a user