From 6c1d0e7a701cb6308af17c9c9617ffde36448013 Mon Sep 17 00:00:00 2001 From: Elias Fierke Date: Wed, 13 May 2026 14:26:30 +0200 Subject: [PATCH] [chore:] initial rs pdf page builder --- Tasks/PdfBuilder.cs | 49 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/Tasks/PdfBuilder.cs b/Tasks/PdfBuilder.cs index 880a46a..0271e77 100644 --- a/Tasks/PdfBuilder.cs +++ b/Tasks/PdfBuilder.cs @@ -104,6 +104,11 @@ public class PdfBuilder addresses.Add(addr); } + if (addresses.Count == 0) + { + MessageBox.Show(MainWindow._instance, "Keine validen Adressen konnten generiert werden. Abbruch.", "Fehler"); + return; + } CreateAddressLabelPdfWithPlaceholder(addresses, placeholderText, outputPath); if (_settings.exportRunningSheets) @@ -404,8 +409,48 @@ public class PdfBuilder { path = path + "-Laufzettel.pdf"; } + + CreateRunningSheets(setID, path); + + } + + public void CreateRunningSheets(int setID, string path) + { + KasAddressList list = Settings._instance.addressSets.GetAddressSetByID(setID); + var document = new PdfDocument(); + document.Info.Title = $"Laufzettel für {list.Name}"; + document.Info.Subject = "powered by logofclient"; + document.Info.Author = "logofclient"; + + int margin = 50; + + List<(int, int)> grouped_nums = GroupAddresses(setID); + + var page = document.AddPage(); + page.Size = PageSize.A4; + + var gfx = XGraphics.FromPdfPage(page); + + var width = page.Width.Point-margin; + var height = page.Height.Point-margin; + gfx.DrawLine(XPens.Black, margin, margin, margin, height); + gfx.DrawLine(XPens.Black, margin, margin, width, margin); + gfx.DrawLine(XPens.Black, width, margin, margin, height); + gfx.DrawLine(XPens.Black, margin, height, width, margin); + + var font = new XFont("Times New Roman", 20, XFontStyleEx.BoldItalic); + + gfx.DrawString($"Versand {list.Name}", font, XBrushes.Black, + new XRect(0, 0, page.Width.Point, page.Height.Point), XStringFormats.Center); + - - + document.Save(path); + } + + public List<(int, int)> GroupAddresses(int setID) + { + + + return null; } }