Documents: Fix letterhead and other problems
All checks were successful
Test / Run tests (push) Successful in 2m39s

This commit is contained in:
2026-03-27 12:06:19 +01:00
parent 982a6616e1
commit 3c52156b7e
6 changed files with 79 additions and 63 deletions

View File

@@ -2,6 +2,7 @@ using Elwig.Helpers;
using Elwig.Models;
using Elwig.Models.Entities;
using iText.Kernel.Colors;
using iText.Kernel.Geom;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Action;
using iText.Kernel.Pdf.Canvas;
@@ -53,9 +54,8 @@ namespace Elwig.Documents {
IncludeSender = includeSender;
}
protected override void RenderHeader(iText.Layout.Document doc, PdfDocument pdf) {
base.RenderHeader(doc, pdf);
protected override void BeforeRenderBody(iText.Layout.Document doc, PdfDocument pdf) {
base.BeforeRenderBody(doc, pdf);
var uid = new KernedParagraph(Member.UstIdNr ?? "-", 10);
if (!Member.IsBuchführend) uid.Add(Normal(" ")).Add(Italic("(pauschaliert)"));
Aside = new Table(ColsMM(22.5, 42.5))
@@ -68,6 +68,20 @@ namespace Elwig.Documents {
.AddCell(NewAsideCell("UID:", isName: true)).AddCell(NewAsideCell(uid));
}
protected void RenderAddress(Canvas canvas, Rectangle pageSize) {
canvas.Add(new Div()
.SetFixedPositionMM(25, 50, 80, 45, pageSize)
.SetFont(NF)
.Add(new KernedParagraph(IncludeSender ? $"{App.Client.Sender1}\n{App.Client.Sender2}" : "", 8).SetMargins(8, 0, 8, 0).SetHeight(16.0625f))
.Add(new KernedParagraph(Address, 12).SetMargin(0).SetHeight(12 * 5)));
}
protected static void RenderAside(Table aside, Canvas canvas, Rectangle pageSize) {
canvas.Add(new Div()
.SetFixedPositionMM(125, 50, 65, 50, pageSize)
.Add(aside));
}
protected override void RenderBody(iText.Layout.Document doc, PdfDocument pdf) {
base.RenderBody(doc, pdf);
@@ -84,16 +98,10 @@ namespace Elwig.Documents {
header.Add(new KernedParagraph(App.Client.NameTypeFull, 12).SetFont(NF).SetMargin(0));
canvas.Add(header);
// address
canvas.Add(new Div()
.SetFixedPositionMM(25, 50, 80, 45, pageSize)
.SetFont(NF)
.Add(new KernedParagraph(IncludeSender ? $"{App.Client.Sender1}\n{App.Client.Sender2}" : "", 8).SetMargin(0).SetHeight(16).SetPaddings(8, 0, 8, 0))
.Add(new KernedParagraph(Address, 12).SetMargin(0).SetHeight(12 * 5)));
RenderAddress(canvas, pageSize);
// aside
if (Aside != null) {
canvas.Add(new Div()
.SetFixedPositionMM(125, 50, 65, 50, pageSize)
.Add(Aside));
RenderAside(Aside, canvas, pageSize);
}
}