From 7cae9a5291595aa06a7a9a83877809b60ac19e30 Mon Sep 17 00:00:00 2001 From: TekH Date: Mon, 29 Sep 2025 15:43:55 +0200 Subject: [PATCH] feat(pdf): add overload for Page to apply design across all pages - Introduced Page(Action) method to apply design logic to every page in the document - Simplified Background method by replacing per-page iteration with new Page overload - Improved readability and maintainability by removing duplicate page loop logic --- EnvelopeGenerator.PdfEditor/Pdf.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/EnvelopeGenerator.PdfEditor/Pdf.cs b/EnvelopeGenerator.PdfEditor/Pdf.cs index 5c218500..2b355246 100644 --- a/EnvelopeGenerator.PdfEditor/Pdf.cs +++ b/EnvelopeGenerator.PdfEditor/Pdf.cs @@ -69,7 +69,15 @@ namespace EnvelopeGenerator.PdfEditor { var page = doc.GetPage(pageIndex); design(doc.GetPage(pageIndex)); - }); + }); + + public Pdf Page(Action design) + { + for (int i = 1; i <= _doc.GetNumberOfPages(); i++) + Page(i, design); + + return this; + } public Pdf Design(int pageIndex, Action design) => Document(doc => @@ -84,14 +92,11 @@ namespace EnvelopeGenerator.PdfEditor where TSignature : ISignature { // once per page - var pageIndexes = signatures.Select(signature => signature.Page).Distinct().OrderBy(index => index); - foreach(var pageIndex in pageIndexes) + Page(page => { - var page = _doc.GetPage(pageIndex); - Rectangle pageSize = page.GetPageSize(); var canvas = new PdfCanvas(page); - canvas.ConcatMatrix(1, 0, 0, -1, 0, pageSize.GetHeight()); - } + canvas.ConcatMatrix(1, 0, 0, -1, 0, page.GetPageSize().GetHeight()); + }); foreach (var signature in signatures) Page(signature.Page, page =>