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');
|
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user