| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using System.Collections.Generic;
- using System.Linq;
- using NUnit.Framework;
- using QuestPDF.Elements;
- using QuestPDF.Examples.Engine;
- using QuestPDF.Fluent;
- using QuestPDF.Helpers;
- using QuestPDF.Infrastructure;
- namespace QuestPDF.Examples
- {
- public class FooterWithAlternatingAlignment : IDynamicComponent<int>
- {
- public int State { get; set; }
-
- public DynamicComponentComposeResult Compose(DynamicContext context)
- {
- var content = context.CreateElement(element =>
- {
- element
- .Element(x => context.PageNumber % 2 == 0 ? x.AlignLeft() : x.AlignRight())
- .Text(x =>
- {
- x.CurrentPageNumber();
- x.Span(" / ");
- x.TotalPages();
- });
- });
-
- return new DynamicComponentComposeResult()
- {
- Content = content,
- HasMoreContent = false
- };
- }
- }
-
- public static class DynamicPageNumberLeftRightExamples
- {
- [Test]
- public static void Dynamic()
- {
- RenderingTest
- .Create()
- .PageSize(PageSizes.A5)
- .MaxPages(100)
- .ShowResults()
- .ProduceImages()
- .RenderDocument(container =>
- {
- container.Page(page =>
- {
- page.Size(PageSizes.A6);
- page.PageColor(Colors.White);
- page.Margin(1, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontSize(18));
- page.Content().Column(column =>
- {
- foreach (var i in Enumerable.Range(0, 50))
- column.Item().PaddingTop(25).Background(Colors.Grey.Lighten2).Height(50);
- });
-
- page.Footer().Dynamic(new FooterWithAlternatingAlignment());
- });
- });
- }
- }
- }
|